ExecutorService 等待任务完成
在多线程应用程序中,通常需要等待提交给 ExecutorService 的所有任务完成在继续之前。虽然存在诸如轮询或不断检查全局任务计数器之类的粗略技术,但可以使用更高效、更优雅的解决方案。
awaitTermination() 和 shutdown()
推荐的方法涉及使用ExecutorService 的awaitTermination() 方法。它允许您指定超时或无限期等待线程完成。它的工作原理如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
此方法会阻塞,直到线程完成或达到超时。如果您希望应用程序在特定时间后继续,即使某些任务尚未完成,您也可以指定有限超时。
以上是如何高效等待ExecutorService任务完成?的详细内容。更多信息请关注PHP中文网其他相关文章!