Java多线程sleep和wait的区别,总结得非常好
生活随笔
收集整理的這篇文章主要介紹了
Java多线程sleep和wait的区别,总结得非常好
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載自?Java多線程sleep和wait的區(qū)別,總結(jié)得非常好
我們都知道sleep是讓線程休眠,到時(shí)間后會(huì)繼續(xù)執(zhí)行,wait是等待,需要喚醒再繼續(xù)執(zhí)行,那么這兩種方法在多線程中的表現(xiàn)形態(tài),它們各有什么區(qū)別呢?
可以總結(jié)為以下幾點(diǎn)。
使用上
從使用角度看,sleep是Thread線程類的方法,而wait是Object頂級(jí)類的方法。
sleep可以在任何地方使用,而wait只能在同步方法或者同步塊中使用。
CPU及資源鎖釋放
sleep,wait調(diào)用后都會(huì)暫停當(dāng)前線程并讓出cpu的執(zhí)行時(shí)間,但不同的是sleep不會(huì)釋放當(dāng)前持有的對(duì)象的鎖資源,到時(shí)間后會(huì)繼續(xù)執(zhí)行,而wait會(huì)放棄所有鎖并需要notify/notifyAll后重新獲取到對(duì)象鎖資源后才能繼續(xù)執(zhí)行。
異常捕獲
sleep需要捕獲或者拋出異常,而wait/notify/notifyAll不需要。
總結(jié)
以上是生活随笔為你收集整理的Java多线程sleep和wait的区别,总结得非常好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胶棒怎么用 教你胶棒的简单使用方法
- 下一篇: 猢狲怎么读 猢狲的介绍