스레드 풀링은 공중 화장실에 비유할 수 있습니다.
▲ 그림 1-45 화장실 문(스레드)과 기다리는 사람들(이벤트)
공중 화장실에는 문이 여러 개 있습니다. 그리고 여러 문 앞에서 일렬로 줄을 서서 기다립니다. 사용 중이 아닌 문이 하나라도 있으면 하나를 골라서 들어갑니다. 모든 문이 사용 중이면 문 하나가 사용 가능해질 때까지 기다려야 합니다.
각 문은 스레드입니다. 그리고 줄 서 있는 사람들은 처리할 이벤트입니다. 여러 문의 집합, 즉 화장실은 스레드 풀입니다. 이렇게 하면 많은 수의 이벤트를 동시에 여러 스레드에서 처리할 수 있으면서 너무 많은 스레드를 두었을 때 발생하는 문제점을 방지할 수 있습니다. 스레드 개수가 많으면 그만큼 동시에 여러 일을 처리할 수 있지만, 너무 많으면 앞서 설명한 것과 같은 문제점이 발생합니다. 따라서 스레드 개수는 적정한 선이 필요합니다.