더북(TheBook)
    print("모든 작업이 완료됨")

if __name__ == "__main__":
    main()

➊ 워커 스레드가 큐에서 작업을 하나 꺼내와 작업에 연결된 함수를 실행한다. 실행이 끝나면 작업에 완료 표시를 한다. 이 과정을 반복한다.

➋ 스레드 풀에 맡겨진 작업을 큐에 저장한다.

➌ 워커 스레드를 생성한 다음, 주 스레드가 끝나면 종료되도록 이들을 데몬 모드로 설정한다. 그리고 스레드를 시작해 큐에 들어 있는 작업을 처리하도록 한다.

➍ 워커 스레드가 큐에 담긴 모든 작업을 끝낼 때까지 블록 상태로 대기한다.

➎ 5개의 워커 스레드를 갖는 스레드 풀을 생성한다.

➏ 작업 20개를 스레드 풀에 의뢰한다.

스레드 풀을 생성하면 지정한 수의 스레드와 작업을 의뢰받을 메시지 큐를 만든다. 그리고 주 스레드는 풀에 작업을 의뢰한 다음, 작업이 완료될 때까지 대기한다.

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