【发布时间】:2013-11-10 18:21:03
【问题描述】:
我正在阅读关于多线程的这篇文章:http://www.ntu.edu.sg/home/ehchua/programming/java/j5e_multithreading.html
它建议(不要求)在单核 CPU 的 CPU 密集型任务中添加 Thread.sleep(10),并且通过这样做有效地为 CPU 提供了额外的时间来更新所有它拥有的其他线程(最重要的是,我正在尝试改进的程序的 UI)。
这对我来说没有任何意义。虽然我的程序没有响应,但我的计算机的其余部分运行良好,我相信是 Windows 为每个程序分配了 CPU 时间。
无论如何,这是个好建议吗?如果是这样,我是说“这是其他线程的 10 毫秒奖励”,还是 Thread.sleep(0) 可以正常工作?
【问题讨论】:
-
听起来像是一些 Java 实现使用绿色线程(模拟线程)而不是真实线程时产生的建议
-
@Mark 不会 Thread.yield() 更合适吗?
-
@haraldK 可能,老实说,我以前从未见过使用
sleep进行响应的建议,老实说,我也从未真正需要使用yield。
标签: java multithreading