[java] 자바 쓰레드 풀의 예제 코드

자바에서 쓰레드 풀을 만들고 사용하는 방법을 알아보겠습니다.

쓰레드 풀이란?

쓰레드 풀은 미리 만들어놓은 쓰레드를 관리하여 작업을 처리하는데 사용됩니다. 이를 통해 쓰레드의 생성과 소멸에 따른 오버헤드를 줄이고, 재사용성을 높일 수 있습니다.

자바에서의 쓰레드 풀 사용 예제

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

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

        for (int i = 0; i < 10; i++) {
            // 작업 제출
            threadPool.execute(new Task(i));
        }

        // 쓰레드 풀 종료
        threadPool.shutdown();
    }

    static class Task implements Runnable {
        private int taskId;

        public Task(int taskId) {
            this.taskId = taskId;
        }

        @Override
        public void run() {
            System.out.println("Task ID : " + taskId + ", Thread Name : " + Thread.currentThread().getName());
        }
    }
}

위 예제에서 ExecutorService 인터페이스를 사용하여 쓰레드 풀을 생성하고, newFixedThreadPool 메소드를 통해 고정 크기의 쓰레드 풀을 생성합니다. 그 후에 execute 메소드를 사용하여 작업을 제출하고, 모든 작업이 완료될 때까지 기다린 후 쓰레드 풀을 종료합니다.

이러한 방식으로 자바에서는 쓰레드 풀을 쉽게 만들고 사용할 수 있습니다.

결론

쓰레드 풀을 사용하면 쓰레드의 생명주기를 관리하고 효율적으로 작업을 처리할 수 있습니다. 자바에서는 ExecutorService를 사용하여 간편하게 쓰레드 풀을 만들고 활용할 수 있습니다.

참고 문헌: