我正在使用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