我正在使用 newFixedThreadPool()
运行固定数量的线程,并且需要能够
- 知道其中一个可运行对象何时死亡,并且
- 知道哪个特定的可运行程序已死亡。
对此的一个解决方案是将 Runnables 包装为 Thread 对象并调用 isAlive()
。线程按其应有的方式运行,但由于执行器从未调用过 aThread.start() ,所以总是返回 false ,这对我来说没有用。我考虑了让 Runnable 在 run() 函数开头触发标志的可能性,就像 this question's answer 一样。建议。跟踪已死亡的 Runnable 的最佳方法是什么?因为我的目的是向执行者提交一个线程,这基本上会做与死亡线程相同的事情。
最佳答案
查看@vk3105 提供的文档后,我有了一个想法。我最终查看了 this并实现了 Future future = executorService.submit(aRunnable)
,以便我可以使用 future.isDone()
检查该 runnable 是否被终止,或者 Runnable 是否被取消在完成之前future.isCancelled()
。
关于java - 如何知道我的 threadPoolExecutor 中哪个特定的可运行程序已死亡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182434/