3
java8 애플리케이션을 실행 중입니다. 메인 스레드가 종료되면 프로세스가 종료됩니다.주 스레드가 종료되면 비동기 작업이 종료됩니까?
내가 비동기은 별도의 스레드로 실행 것으로 예상 다음
CompletableFuture cf = CompletableFuture.supplyAsync(() -> task.call());
cf.thenRunAsync(() -> {
try {
System.out.println(Thread.currentThread());
System.out.println((Double)cf.get() * 4.0);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
});
같은 비동기 작업을 시작합니다 completableFuture을 사용하고, 그래서 메인 스레드 종료가 프로세스 종료가 발생하지해야하지만, 그것은 사실이 아니다 밝혀 .
비동기 작업이 deamon 스레드로 실행되고 있습니까? 그러나 확인할 수는 없습니다.
당신이 당신의 문제에 더 정교한 :
는 같은 명시 적 집행을 통과해야이 문제를 방지하려면? –코드 스 니펫 추가 –