나는 지난 몇 시간에 대해 상당히 읽고 있었다, 나는 단순히 어떤 이유 (볼 수없는 유효한 전화에 이유) shutdown()
온 ExecutorService
우리는 엄청난 응용 프로그램을하지 않는 한, 어떤 상점, 수십 사용되지 않는 다른 실행 프로그램 서비스의 수십 오랫동안.
(내가 모은 것에서) 셧다운이하는 유일한 일은 일단 정상 쓰레드가하는 일을하는 것입니다. 일반 Thread가 Runnable (또는 Callable)의 run 메소드를 완료하면 Garbage Collection으로 전달되어 수집됩니다. Executor Service를 사용하면 스레드가 단순히 보류 상태가되고 가비지 수집을 위해 틱되지 않습니다. 이를 위해 종료가 필요합니다.
내 질문으로 돌아갑니다. ExecutorService
자주 또는 일부 작업을 제출 한 직후 에 shutdown을 호출 할 이유가 있습니까? 나는 누군가가 그것을하고있는 사건을 남겨두고 awaitTermination()
이것이 검증 된 직후에 전화를 걸고 싶습니다 . 일단 ExecutorService
그렇게하면 똑같은 일을하기 위해 새로운 것을 다시 만들어야합니다 . ExecutorService
스레드를 재사용 하는 전체 아이디어가 아닙니까? 그렇다면 왜 ExecutorService
그렇게 빨리 파괴 합니까?
단순히 생성 ExecutorService
(또는 필요한 수에 따라 결합) 한 다음 애플리케이션 실행 중에 작업이 수행되면 작업을 전달한 다음 애플리케이션 종료 또는 다른 중요한 단계에서 해당 실행기를 종료하는 것이 합리적인 방법입니까? ?
ExecutorServices를 사용하여 많은 비동기 코드를 작성하는 숙련 된 코더의 답변을 원합니다.
두 번째 질문, 안드로이드 플랫폼에 대한 조금 더 작은 문제입니다. 매번 실행 프로그램을 종료하는 것이 최선의 생각이 아니라고 말하고 Android에서 프로그래밍하는 경우 다른 이벤트를 처리 할 때 이러한 종료를 처리하는 방법 (구체적으로-실행할 때)을 알려주세요. 응용 프로그램 수명주기.
CommonsWare 의견 때문에 게시물을 중립적으로 만들었습니다. 나는 그것에 대해 죽음에 대해 논쟁하는 데 정말로 관심이 없으며 그것이 거기로 이끄는 것처럼 보입니다. 경험을 공유 할 의향이있는 경우 경험이 풍부한 개발자에게 여기서 요청한 내용에 대해서만 관심이 있습니다. 감사.