[java] 쓰레드 풀의 종류
이번 포스트에서는 자바에서 사용되는 쓰레드 풀의 종류 에 대해 살펴보겠습니다.
- 고정 크기 쓰레드 풀
- 가변 크기 쓰레드 풀
- 작업 큐를 이용한 쓰레드 풀
1. 고정 크기 쓰레드 풀
고정 크기 쓰레드 풀은 ThreadPoolExecutor
클래스를 사용하여 생성됩니다. 쓰레드의 최대 개수가 정해져 있어 쓰레드가 계속 생성되지 않습니다. 주로 안정된 환경에서 사용됩니다.
ExecutorService executor = Executors.newFixedThreadPool(5);
2. 가변 크기 쓰레드 풀
가변 크기 쓰레드 풀은 ExecutorService
인터페이스의 newCachedThreadPool
메서드를 사용하여 생성됩니다. 쓰레드의 최대 개수가 정해져 있지 않으며, 필요에 따라 쓰레드가 동적으로 생성 및 제거됩니다.
ExecutorService executor = Executors.newCachedThreadPool();
3. 작업 큐를 이용한 쓰레드 풀
LinkedBlockingQueue
등의 작업 큐를 이용하여 쓰레드 풀을 구현할 수 있습니다. 작업 큐를 통해 쓰레드 간 효율적인 작업 분배가 가능하며, 작업이 큐에 쌓이는 경우에도 쓰레드가 생성됩니다.
ExecutorService executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
이상으로 자바에서 사용되는 쓰레드 풀의 종류에 대해 다뤄보았습니다. 더 자세한 내용은 Oracle Java Documentation 를 참고하세요.