큐에 접근하는 생산자 스레드 1개, 소비자 스레드 3개가 있다고 할게. 그리고 세마포어 값은 3으로 하고.
생산자 스레드는 큐에 아이템을 3개씩 넣고, 소비자 스레드들은 1개씩 가져가는 구조로 동작한다고 할때,
생산자는 세마포어를 3개 가져가고 3개 돌려주도록 설정하고, 소비자는 1개씩 사용하도록 만들수도 있나??
즉 요점은 설계 사항에 따라 give, take하는 세마포어 개수를 설정해도 되는지 궁금함.
큐에 접근하는 생산자 스레드 1개, 소비자 스레드 3개가 있다고 할게. 그리고 세마포어 값은 3으로 하고.
생산자 스레드는 큐에 아이템을 3개씩 넣고, 소비자 스레드들은 1개씩 가져가는 구조로 동작한다고 할때,
생산자는 세마포어를 3개 가져가고 3개 돌려주도록 설정하고, 소비자는 1개씩 사용하도록 만들수도 있나??
즉 요점은 설계 사항에 따라 give, take하는 세마포어 개수를 설정해도 되는지 궁금함.
글 읽어보니 생산자 한놈이 일할 때는 소비자는 놀게 하고, 소비자 3놈이 일할 때는 생산자 한놈이 놀게 하고 싶다 이말임?
모니터(컨디션) 써라 ㅇㅅㅇ
꼭 세마포어로 조절을 해야만 한다면 생산자 일 시작한다고 acquire 할때 3번하면 될 것 같은데
치카냥 말대로 보통은 condition 많이 씀
ㅇㅇ // 뭐 그렇다고 보면 되용. 그냥 각 스레드에 따라 세마포어를 돌려주고 갖는 개수를 다르게 설정해도 되는지 궁금함. 보통은 1개씩 가져가고 돌려준다고 설명해서.
할려면야 가능은 하지 ㅇㅇ
그걸 Reader Writer Lock 이라고 함 구현하는 법 따로 있으니까 찾아보셈 그냥 세마 카운트로는 못함 - return 0;
와 프겔 ㄹㅇ 능력자 많자너 ㄳ
커헉/ 그건 레이스 컨디션에 대한 거 아닌가?
원글은 매모리 접근에 상관없이 플로우를 끊고 멈추고에 대한 이야기.같은데
이 질문이랑 readers writers lock이랑 무슨 상관이냐 ㅇㅅㅇ
아 이거 컨슈머 프로듀서 문제구나 - return 0;
그러면 쓰레드풀 만들 듯이 하면 될 것 같은데? 컨슈머 한명당 큐 하나씩 만들고 프로듀서는 계속 루프 돌면서 큐마다 아이템 하나씩 넣어주는거임. 아이템이 섞여도 되면 task stealing 도 추가하면 될듯 - return 0;