一尘不染

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

java

这两个陈述是否相等?

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

阅读 316

收藏
2020-09-08

共1个答案

一尘不染

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

我敢打赌,在连续做各一百万次将采取 很多 更长的睡眠(),因为系统计时器粒度可能经常导致它实际上是一段不可忽略量的睡眠。

2020-09-08