Executors.newFixedThreadPool(3)
에게 일부 작업을 제출하면 모두 성공적으로 실행되고 완료됩니다. 그럼 난 ExecutorService가 종료되었지만 JVM이 없습니다
executorService.shutdown();
executorService.awaitTermination(2000, TimeUnit.MILLISECONDS);
이
executorService.isShutdown()
executorService.isTerminated()
를 통해 그것을 확인하고 다시 두 번 진정한 얻을 호출합니다. 주 스레드는 종료되지만 JVM은 계속 작동합니다. AWT 쓰레드도 마찬가지입니다. 볼 수있는 것은 3 개의 풀 쓰레드 인 DestroyJavaVM
과 com.google.inject.internal.util.$Finalizer
입니다.
파이널 라이저는 데몬 스레드가 아닌 경우 주요한 용의자가 될 수 있습니다. 나는 풀 스레드가 긴 때문에 isTerminated == true
의 사라 할 기대,
사실이 이미지를 얻기 위해 두 개의 스레드를 중단. 그들 모두가 누구를 기다리는 지 아십니까?
어떻게 든 다른 서비스를 실행하지 않습니까? 나는 이것이 pool-2라는 것을 알았다. – dcernahoschi
@dcernahoschi Me stupid ... ['@ Singleton'] (http://google-guice.googlecode.com/git-history/3.0/javadoc/com/google/inject/Singleton.html)을 추가하는 것을 잊어 버렸습니다. 서비스에 대한 나의 래퍼에게. 그래서 나는 한 수영장을 닫고 다른 한 마리는 머물렀다. 어쩌면이 질문을 삭제해야하지만, 다른 사람들이 내가 가질 수있는만큼 이익을 얻을 수 있습니다. 대답을 추가 하시겠습니까? – maaartinus