
○ 스레드풀 생성
앞선 스레드풀 개념에서 설명했듯이, ExecutorService 인터페이스의 구현 객체는 Executors 클래스의 static 메서드를 이용해 생성하게 됩니다. 아래 두 가지 메서드 중 하나를 사용하게 됩니다.
메서드명(파라미터) | 초기 스레드 수 | 코어 스레드 수 | 최대 스레드 수 |
newCachedThreadPool( ) | 0 | 0 | Integer.MAX_VALUE |
newFixedThreadPool(int nThreads) | 0 | nThreads | nThreads |
* 초기 스레드 수 : ExecutorService 객체가 생성될 때 기본적으로 생성되는 스레드 수를 의미
* 코어 스레드 수 : 스레드 수 증가 후, 사용하지 않는 스레드를 스레드 풀에서 제거할 때 최소한으로 유지해야 할 스레드 수
* 최대 스레드 수 : 스레드풀에서 관리하는 최대 스레드 수
(1) newCachedThreadPool( ) 메서드로 생성된 스레드풀의 특징
- 초기 스레드 개수와 코어 스레드 개수는 0개이고, 스레드 개수보다 작업 개수가 많으면 새 스레드를 생성해 처리합니다.
- 이론적으로는 int 값이 가질 수 있는 최대값만큼 스레드가 추가된다고 보지만, OS 성능이나 상황에 따라 달라집니다.
- 1개 이상의 스레드가 추가되었을 대, 60초 동안 추가된 스레드가 아무 작업을 하지 않으면 추가된 스레드를 종료하고 풀에서 제거합니다.
- newChachedThreadPool( )을 호출해서 ExecutorService 구현 객체를 얻는 코드는 아래와 같습니다.
ExecutorService executorService = Executors.newChachedThreadPool();
'Programming > JAVA' 카테고리의 다른 글
멀티 스레드(9) - 스레드 풀 2 : 스레드 풀 생성 및 종료 3 (0) | 2025.01.10 |
---|---|
멀티 스레드(9) - 스레드 풀 2 : 스레드 풀 생성 및 종료 2 (0) | 2025.01.08 |
멀티 스레드(9) - 스레드 풀 1 : 스레드 풀의 정의 (0) | 2025.01.05 |
멀티 스레드(8) - 스레드 그룹 5 (2) | 2025.01.02 |
멀티 스레드(8) - 스레드 그룹 4 (0) | 2024.12.30 |