이것은 디자인 질문입니다.pthread multithreading
총 6 개의 스레드와 2 개의 FIFO 대기열이 있습니다. 6 개 개의 스레드는 :
- 2 생산자 queue1을 행 (부호 INT이다) "항목"과 인큐 생산
- 2 세미 소비자 queue1을하고 대기열로부터 디큐 항목
- 2 소비자 queue2 로부터 디큐 queue2 할
항목의 총 수는 내 질문은 500
입니다 : 모든 500 개 항목 queue1을의 t를 통해 라우팅하는 동안 내가 어떻게 그 2 반 소비자와 살아 소비자를 유지할 수 있습니다 o 큐 2에서 대기열에서 제외 되었습니까? 생산자 스레드의 경우 전역 항목 수를 유지할 수 있기 때문에 쉽습니다.
그래서 total_entries = 500이면 루틴에서 리턴 (스레드가 종료 됨)됩니다. 나는 해킹 대신 효과적인 방법을 사용하고 싶다.
환경 : Linux, pthread, C/C++.