은 실행 프로그램이 생성되어 다른 후 작업 R1 및 R2 순차적 하나를 수행하고, 다음 자바 코드자바 newSingleThreadExecutor 가비지 컬렉션
void doSomething(Runnable r1, Runnable r2){
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(r1);
executor.execute(r2);
}
을 고려한다.
제 질문은 : 두 작업 r1과 r2가 종료되면 어떻게 될까요?
executor 개체가 가비지 수집 될 것이라고 가정하지만 종료할지 여부는 알지 못합니다. executor가 실행을위한 새로운 쓰레드를 생성한다면,이 쓰레드는 리소스 누출을 초래할 것인가?
ExecutorService를 사용하고 실행을 위해 작업을 제출하면 shutdown을 호출 할 수 있습니다. ES는 작업이 완료 될 때까지 기다렸다가 종료됩니다. – Jacob
코어 태스크가 0 인'ThreadPoolExecutor'를 사용해, 실행하는 태스크가없는 경우에 thread가 재생되도록 (듯이) 할 수도 있습니다. – Magnus