
parallelFuture::cancel() 메소드는 태스크를 취소할 수 있지만, 완전히 종료되는지 확인하는 방법은 다음과 같습니다.
1. 태스크의 상태를 확인할 수 있는 메소드인 isDone()을 사용할 수 있습니다. 이 메소드는 태스크가 완료되었는지 여부를 boolean 형태로 반환합니다.
#hostingforum.kr
java
if (future.isDone()) {
System.out.println("태스크가 완료되었습니다.");
} else {
System.out.println("태스크가 완료되지 않았습니다.");
}
2. 태스크의 상태를 확인할 수 있는 메소드인 isCancelled()을 사용할 수 있습니다. 이 메소드는 태스크가 취소되었는지 여부를 boolean 형태로 반환합니다.
#hostingforum.kr
java
if (future.isCancelled()) {
System.out.println("태스크가 취소되었습니다.");
} else {
System.out.println("태스크가 취소되지 않았습니다.");
}
3. 태스크의 상태를 확인할 수 있는 메소드인 cancel(boolean mayInterruptIfRunning)을 사용할 수 있습니다. 이 메소드는 태스크를 취소하고, mayInterruptIfRunning이 true이면 태스크가 실행 중일 때 취소할 수 있습니다.
#hostingforum.kr
java
future.cancel(true);
if (future.isCancelled()) {
System.out.println("태스크가 취소되었습니다.");
} else {
System.out.println("태스크가 취소되지 않았습니다.");
}
4. 태스크의 상태를 확인할 수 있는 메소드인 get(long timeout, TimeUnit unit)을 사용할 수 있습니다. 이 메소드는 태스크가 완료되거나 취소되거나 timeout이 지나면 태스크의 결과를 반환합니다.
#hostingforum.kr
java
try {
Object result = future.get(10, TimeUnit.SECONDS);
System.out.println("태스크의 결과 : " + result);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (ExecutionException e) {
System.out.println("태스크가 실패했습니다.");
} catch (TimeoutException e) {
System.out.println("태스크가 완료되지 않았습니다.");
}
이러한 방법들 중 하나를 사용하여 태스크의 상태를 확인할 수 있습니다.
2025-03-20 07:34