Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker DevOps


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()方法中断

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

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

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

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