fcw*_*fcw 21 java multithreading
内联Java IDE提示声明,"在循环中调用Thread.sleep会导致性能问题." 我在文档的其他地方找不到解释.这个说法.
为什么?怎么样?还有什么其他方法可以延迟线程的执行?
Thi*_*ilo 34
Thread.sleep
循环本身并不是性能问题,但通常暗示你做错了.
while(! goodToGoOnNow()) {
Thread.sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
使用Thread.sleep
仅如果要暂停您的线程一定的时间.如果您想等待某种情况,请不要使用它.
对于这种情况,您应该使用wait/notify
并发工具包中的替代或一些构造.
Thread.sleep
只有在等待当前JVM外部的条件时才应使用轮询(例如,等待另一个进程写入文件).
这取决于你为什么要睡觉以及你经常跑的频率.
我可以想到几种可能适用于不同情况的替代方案:
归档时间: |
|
查看次数: |
19016 次 |
最近记录: |