쓰레드풀에서 흔하게 사용되는 방법이 워커 쓰레드를 N개 생성하여 놓고 공유하는 작업 큐에서 데이터를 받아와 워커 쓰레드에서 실행하는 방법입니다. 이 때 작업 큐가 비었을 때 워커 쓰레드를 재워주는 처리를 해주지 않으면 CPU 사용량이 올라가게 됩니다. sleep을 해주는 것도 재운 시간에 작업 큐에 데이터가 들어왔다면 그 만큼 워커 쓰레드에서 늦게 실행하게 되어 재우는 시간도 민감하게 설정하여야 합니다. 이 때 사용할 수 있는 방법이 작업 큐에 조건 락(conditional lock)을 사용하는 것입니다. 이 방법을 바탕으로 작업 큐가 비어 있을 때만 워커 쓰레드를 재우고 작업 큐에 데이터가 들어왔을 때는 깨울 수 있습니다. 이 방법은 워커 쓰레드의 사용성은 높이면서 CPU 사용량을 줄이는 방법입니다. ..