java - Thread.sleep(0) 和 Thread.yield() 语句是否等效?

标签 java multithreading

这两个语句是等价的吗?

Thread.sleep(0);
Thread.yield();

最佳答案

没有。最明显的区别是 sleep() 抛出(检查的)InterruptedException。在实践中,效果可能几乎相同,但它完全取决于实现。

我敢打赌,对于 sleep(),连续执行一百万次会花费 更多 更长的时间,因为系统计时器粒度可能经常导致它实际 sleep 不可忽略的数量时间。

关于java - Thread.sleep(0) 和 Thread.yield() 语句是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600572/

相关文章:

java - 如何检测 Slick2D 中旋转图像上的点击?

java - 蓝牙打印在不同设备上从 Socket 抛出 IOException

c++ - `clock()` 给出通常的时钟而不是 CPU 时钟

memory - 跨线程协作内存使用?

java - JSF 和 j_security_check 连接

java - 电子商务网站的批处理应该保存在同一个应用程序中还是不同的应用程序中?

java - 在java中生成一个没有重复的随机点数组

多线程 Web 请求上的 C# 错误

c - 确定运行线程的套接字/处理器

java - 想要 Android 中的程序方法