[java] 쓰레드 풀의 작업 중단 후 복구 방법
쓰레드 풀은 많은 작업을 처리하는 데 도움이 되는데, 종종 작업을 중단하고 다시 시작해야 할 때가 있습니다. 여기에서는 작업을 중단하고 복구하는 방법에 대해 알아보겠습니다.
1. 작업 중단
쓰레드 풀의 작업을 중단하기 위해서는 각 쓰레드에게 작업을 중단하도록 지시해야 합니다. ExecutorService
인터페이스를 사용하여 이를 수행할 수 있습니다. ExecutorService
를 사용하여 작업을 제출하고 다음과 같이 작업을 중단할 수 있습니다.
ExecutorService executorService = Executors.newFixedThreadPool(5);
// 작업을 제출하고 Future 객체를 통해 결과를 받는다
Future<?> future = executorService.submit(() -> {
// 작업 내용
});
// 작업을 중단시킨다
future.cancel(true);
위의 코드에서 future.cancel(true)
를 호출하여 작업을 중단시킬 수 있습니다.
2. 작업 복구
작업을 중단한 후에는 복구할 수도 있습니다. submit
메서드로 제출한 작업의 결과를 받을 수 있는 Future
객체를 사용하여 작업을 다시 시작할 수 있습니다.
Future<Integer> future = executorService.submit(() -> {
// 작업 내용
return 결과;
});
try {
Integer result = future.get();
// 결과를 이용한 후속 작업
} catch (InterruptedException | ExecutionException e) {
// 예외 처리
}
위의 코드에서 future.get()
을 호출하여 작업의 결과를 얻을 수 있습니다.
이와 같이 ExecutorService
를 사용하여 쓰레드 풀의 작업을 중단하고 복구하는 방법에 대해 알아보았습니다.