작업 큐를 손수 만드는 일은 삼가야 하고, 스레드를 직접 다루는 것도 일반적으로 삼가야 한다. 실행자 프레임워크를 사용하여 작업 단위와 실행 단위로 이용하자.실행 단위ExecutorService(실행서비스)특정 태스크가 완료되기를 기다린다.태스크 모음 중 아무것 하나 혹은 모든 태스크가 완료되기를 기다린다.실행자 서비스가 종료하기를 기다린다.완료된 태스크들의 결과를 차례로 받는다.태스크를 특정 시간에 혹은 주기적으로 실행하게 한다.큐를 둘 이상의 스레드가 처리하게 하고 싶다면 간단히 다른 정적 팩터리를 이용하여 다른 종류의 실행자 서비스(스레드 풀)를 생성하면 된다. 스레드 풀의 스레드 개수는 고정할 수도 있고 필요에 따라 늘어나거나 줄어들게 설정할 수도 있다. ThreadPoolExecutor 스레드 ..