[java] 자바에서 쓰레드 풀을 생성하는 방법
쓰레드 풀은 많은 요청을 처리할 수 있도록 미리 쓰레드를 생성해 놓고 재사용하는 기법입니다. 자바에서는 ExecutorService
인터페이스를 사용하여 쓰레드 풀을 생성할 수 있습니다.
1. 고정 크기의 쓰레드 풀 생성
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
int poolSize = 5;
ExecutorService threadPool = Executors.newFixedThreadPool(poolSize);
// 쓰레드 풀 사용 예
for (int i = 0; i < 10; i++) {
threadPool.execute(new MyTask(i));
}
threadPool.shutdown(); // 작업 완료 후 쓰레드 풀 종료
}
}
위의 예제에서 newFixedThreadPool
메서드는 고정된 크기의 쓰레드 풀을 생성합니다.
2. 동적 크기의 쓰레드 풀 생성
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
ExecutorService threadPool = Executors.newCachedThreadPool();
// 쓰레드 풀 사용 예
for (int i = 0; i < 10; i++) {
threadPool.execute(new MyTask(i));
}
threadPool.shutdown(); // 작업 완료 후 쓰레드 풀 종료
}
}
newCachedThreadPool
메서드는 요청에 따라 쓰레드를 동적으로 생성하는 쓰레드 풀을 생성합니다.
결과
자바에서는 ExecutorService
인터페이스와 Executors
유틸리티 클래스를 사용하여 간단하게 쓰레드 풀을 생성하고 관리할 수 있습니다. 고정된 크기의 쓰레드 풀이나 동적으로 크기가 조절되는 쓰레드 풀을 선택하여 애플리케이션의 요구에 맞는 효율적인 멀티쓰레딩을 구현할 수 있습니다.
참고 자료: Oracle 공식 문서