我正在使用newFixedThreadPool()
線程固定量,需要能夠如何知道哪個特定的runnable在我的threadPoolExecutor中死亡?
- 知道什麼時候可運行的一個已經死了,
- 知道哪些具體運行的是死了一個。
對此的一個解決方案是將Runnables作爲Thread對象包裝並調用isAlive()
。線程運行,因爲他們應該有,但因爲aThread.start()
永遠不會被執行者調用總是返回false
這是沒有用的。我認爲在run()
函數的開始處使Runnables觸發一個標誌的可能性就像建議的this question's answer一樣。跟蹤已經死亡的Runnables的最佳方式是什麼?因爲我的意圖是向執行者提交一個線程,這個線程基本上會和死掉的那個一樣。
或者這些runnables應該無限期運行?或者他們是一項任務? –
它們無限運行,直到執行程序調用「shutdown」爲止 –
本質上,執行程序服務管理線程週期。自線程發明以來,管理線程的用戶一直是個問題。我維護一個線程管理器,並在幾年前寫了這篇文章。也許它可以幫助你:http://coopsoft.com/ar/j2searticle.html – edharned