더북(TheBook)

첫 번째 작업이 추가되면 사용할 수 있는 스레드 중 하나가 깨어나 작업을 실행하고 마친 후 다시 준비 상태로 돌아간다. 덕분에 매번 스레드를 생성하고 종료하는 비용을 아낄 수 있으며, 개발자는 스레드를 직접 관리하지 않고 라이브러리나 운영체제에 맡길 수 있다.

노트

배포되는 예제 코드 중 Chapter 5/library_thread_pool.py 파일에 파이썬 라이브러리를 사용해 구현한 스레드 풀이 있다.

스레드 풀은 대부분의 동시적 애플리케이션에서 가장 먼저 고려할 만한 기법이다. 다만, 다음과 같은 몇 가지 상황에서는 스레드 풀 대신 스레드를 직접 관리하는 편이 낫다.

• 스레드에 여러 기준을 가진 우선순위를 적용해야 할 상황.

• 스레드가 오랫동안 블록 상태에 놓이는 작업을 처리해야 할 상황. 대부분의 스레드 풀 구현은 최대 스레드 수에 제한이 있기 때문에 블록 상태에 있는 스레드가 너무 많아지면 새로운 작업을 시작할 수 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.