【面試】Java中sleep和wait的區別


1、sleep方法是Thread類的靜態方法;

wait方法是Object類的成員方法

 

2、sleep方法使當前線程暫停執行指定的時間,讓出cpu給其他線程,但是它的監控狀態依然保持着,當指定的時間到了又會自動恢復運行狀態。在調用sleep方法后,線程不會釋放對象鎖;

而當調用wait方法時,線程會放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象調用notify()方法后本線程才進入對象鎖定池處於准備狀態。

 

3、sleep方法有可能會拋出異常,所以需要進行異常處理;

wait方法不需要處理

 

4、sleep方法可以在任何地方使用;

wait方法只能在同步方法和同步代碼塊中使用

 

Java中線程的生命周期圖譜如下所示:

 


---------------------
版權聲明:本文為CSDN博主「掌燈夜行」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/dao_wolf/article/details/81175089


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM