shared queue

ThreadPool은 sender로 넣고 여러 Worker가 공유 receiver에서 꺼낸다

mpsc receiver는 여러 worker가 함께 보려면 Arc<Mutex<_>>로 감싸야 하며, 각 worker는 job을 하나씩 받아 실행한다.

01 ThreadPool::executeFnOnce job 생성

Box로 감쌈

02 senderjob 전송

큐에 넣기

03 Arc<Mutex<Receiver>>worker들이 공유

한 번에 하나가 recv

04 Workerjob 실행

다음 작업 대기

구분의미판단
Sender작업 투입구ThreadPool이 보관
Receiver작업 출구worker들이 공유
Mutex동시 recv 보호한 worker씩 접근
Arcreceiver 소유 공유worker 스레드로 이동

핵심 공유 큐는 job을 복제하는 것이 아니라 receiver 접근을 동기화해 하나씩 나누어 주는 것이다.