SECTION 5.2 스레드 풀 패턴
스레드를 사용하는 코드를 작성하다 보면 좌절하는 경우가 많다. 직접 관리해야 할 저수준 동시성 구조가 스레드만 있는 것은 아니지만, 스레드와 함께 필요한 동기화를 끼워 넣다 보면 성능 향상이 반드시 보장되지도 않는다. 거기다 시스템 부하나 하드웨어 구성에 따라 최적의 스레드 수가 달라지기 때문에 신뢰성 있게 스레드를 관리하기가 매우 어렵다.
이러한 어려움에도 불구하고, 대부분의 동시적 애플리케이션은 다중 스레드를 채용한다. 또한 이들 스레드가 작성된 프로그래밍 언어 그대로 동작하지는 않는다. 런타임 환경은 이들 프로그래밍 언어 구조를 실제 스레드에 배정해야 한다. 이 과정을 구현하는 데 많은 프레임워크와 프로그래밍 언어에서 채용되는 패턴이 스레드 풀(thread pool)이다.