[java] 자바에서 스레드 풀을 사용하는 방법은?

====================================================

자바에서 스레드 풀을 사용하는 것은 애플리케이션의 성능과 확장성을 향상시키는 데 도움이 됩니다. 스레드 풀은 스레드를 관리하고 재사용하는 기능을 제공하여 스레드 생성 및 제거에 따른 오버헤드를 줄여줍니다.

스레드 풀을 사용하기 위해서는 ThreadPoolExecutor 클래스를 사용해야 합니다. 다음은 스레드 풀을 생성하고 사용하는 예제 코드입니다.

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolExample {
    public static void main(String[] args) {
        // 스레드 풀 생성
        ExecutorService executor = Executors.newFixedThreadPool(5);

        // 작업 추가
        for (int i = 1; i <= 10; i++) {
            final int taskId = i;
            executor.submit(() -> {
                System.out.println("Task " + taskId + " is running.");
                // 작업 수행
            });
        }

        // 스레드 풀 종료
        executor.shutdown();
    }
}

위의 예제에서는 Executors.newFixedThreadPool() 메서드를 사용하여 크기가 5인 스레드 풀을 생성합니다. submit() 메서드를 통해 작업을 스레드 풀에 추가합니다. 작업은 람다식으로 정의되며, 각 작업은 Task {id} is running.이라는 메시지를 출력하는 간단한 예시입니다.

작업을 모두 추가한 후에는 shutdown() 메서드를 호출하여 스레드 풀을 종료합니다.

스레드 풀을 사용하면 애플리케이션의 리소스 사용을 효율적으로 관리할 수 있으며, 다수의 작업을 동시에 처리하는데 도움이 됩니다.

더 자세한 내용은 다음 Java 독일 문서를 참조하세요.