|
|
1
12
有几件事你可以做,比永远挂起最初的线程更好:
|
|
2
13
(感谢卡洛斯·赫伯格。上述代码中省略了异常处理)
|
|
|
3
6
好吧,所以它不是永远的,但是谈论一个非常长的时间:) |
|
|
4
5
使用执行器。通过使用方法shutdown(),您将强制执行器等待所有线程完成。 |
|
|
5
4
用一个 CountDownLatch 你可以等到倒计时到0,如果你确保它从不倒计时,也许只有在它需要结束的时候(这也会导致0%的cpu,与将永远运行的循环相反,使用join()时,当所有其他线程完成时,应用程序仍将完成,executor的选项更好,但也会在所有已执行任务完成时结束) |
|
|
6
3
你可以用 thread.join 等待所有线程。 |
|
|
7
1
这里有一个解决方案,是一个线性,因为你只需要添加一个额外的行(你必须加上
它假设你永远不会打电话
|
|
|
8
0
|
|
|
9
0
|
|
|
10
-1
但你不太可能想要挂线。相反,您应该考虑加入其他线程之类的选项。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |