如何在不调用future.get的情况下查找是否已完成所有线程?

时间:2012-07-25 09:54:47

标签: java multithreading future

我需要知道我的所有线程何时完成了他们的工作,但是future.get();停止所有其他活动,直到线程完成。那么有没有其他方法可以找出所有线程是否已经完成?

3 个答案:

答案 0 :(得分:2)

您也可以使用Future.isDone方法。你可以轮询那些。

答案 1 :(得分:2)

您可以致电future.isDone()来查看未来是否已完成,而不会阻止。

答案 2 :(得分:2)

我会添加一个等待所有未来的任务。这样就不会阻止主线程等待结果。

isDone的问题是,如果任务被取消,它可以返回false。