Java 中 sleep 和 wait 的区别

Java juc 大约 271 字

区别一

sleepThread的方法。

waitObject的方法。

区别二

sleep不需要包裹在synchronized中。

wait必须包裹在synchronized代码块中。

区别三

sleep不会释放锁。

wait会释放锁,并进入Monitor对象的waitSet中,当调用notify后重新竞争锁,因为synchronized是非公平锁,所以可能直接获得了锁,也可能进入EntryList双向链表等待获取锁。

相同点

sleep(long n)wait(long n)都能被Thread.interrupted()方法中断

阅读 220 · 发布于 2021-08-31

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批