ThreadPoolExecutor에 문제가 있습니다. 몇 시간 동안 제대로 작동하지만 때로는 (임의의 시간에, 때로는 2 분 또는 3 시간 후에) 제출 된 작업의 실행이 중지되고 프로그램이 중지됩니다.Java ThreadPoolExecutor가 잠시 후 작동을 멈 춥니 다
현재 큐가 가득 차고 모든 corethread가 활성화되어 있습니다.
나는 이것이 어디에서 왔는지 간단히 알 수 없습니다. 특히 모든 corethreads가 항상 작동하는 동안 그것은 때때로 3 시간 동안 작동하기 때문에.
나에게 제안이있는 사람이 있으면 매우 기쁠 것입니다.
교착 상태입니다. 그럼 어떤 코드가 쓰레드간에 공유됩니까? 빨간 머리 디버깅 : 앱을 디버그 모드로 실행하고 잠글 때까지 기다린 다음 디버거와 연결하고 jvm을 일시 중단하면 모든 스레드가 어느 시점에 있는지 볼 수 있습니다. –
교착 상태가 의심되면 모든 스레드의 스택 추적을 덤프하십시오. Windows에서는 Control-Break를 눌러 수행합니다. 스레드가 동기화 된 내용과 대기중인 내용을 확인하십시오. –
반드시 교착 상태 일 필요는 없습니다. – erickson