Thread中yield、join、sleep(0)区别

本文深入探讨了Java中Thread类的yield、join和sleep方法的使用。解释了yield方法如何让出CPU但不释放锁,join方法如何使线程阻塞直至另一线程完成,以及sleep方法的短暂休眠特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Thread.yield会让当前线程让出持有的锁,让包含自己在内的其他线程去争抢锁,自己依然有抢到锁的可能性。

Thread.join会让调用当前线程的线程处于阻塞状态,直至当前线程执行完毕。

Thread.sleep(0)只是短暂的休眠,并不会让出锁,依然是锁的持有者。