2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

wait和sleep二者有什么不同?

更新時間:2023-10-24 來源:黑馬程序員 瀏覽量:

wait() ,wait(long) 和 sleep(long) 的效果都是讓當前線程暫時放棄 CPU 的使用權,進入阻塞狀態,但二者有明顯區別:

方法歸屬不同

  * sleep(long) 是 Thread 的靜態方法。

  * 而 wait(),wait(long) 都是 Object 的成員方法,每個對象都有。

  * 醒來時機不同。

  * 執行 sleep(long) 和 wait(long) 的線程都會在等待相應毫秒后醒來。

  * wait(long) 和 wait() 還可以被 notify 喚醒,wait() 如果不喚醒就一直等下去。

  * 它們都可以被打斷喚醒。

  * 鎖特性不同(重點)。

  * wait 方法的調用必須先獲取 wait 對象的鎖,而 sleep 則無此限制。

  * wait 方法執行后會釋放對象鎖,允許其它線程獲得該對象鎖(我放棄 cpu,但你們還可以用)。

  * 而 sleep 如果在 synchronized 代碼塊中執行,并不會釋放對象鎖(我放棄 cpu,你們也用不了)。


分享到:
在線咨詢 我要報名
和我們在線交談!