Rust · threadpool

ThreadPool Job Queue와 Arc<Mutex<Receiver>>

ThreadPool은 sender로 작업을 넣고 여러 Worker가 공유 receiver에서 하나씩 꺼내 실행합니다.

스레드풀 작업 전달 구조

queue

ThreadPool

작업 전송용 sender와 Worker 목록을 가집니다.

execute

클로저를 Job으로 감싸 채널에 보냅니다.

Receiver

큐에서 다음 Job을 꺼내는 단일 수신자입니다.

Arc<Mutex<_>>

여러 Worker가 안전하게 같은 Receiver를 공유합니다.

Worker run

lock, recv, job 실행을 반복합니다.

execute send job lock receiver recv run job

정리

Arc<Mutex<Receiver>>는 복잡한 장식이 아니라 복제 불가능한 수신자를 여러 작업 스레드가 안전하게 나눠 쓰기 위한 구조입니다.