sleep和wait哪個會釋放鎖 下面對sleep()和wait()的描述哪個是正確的?
下面對sleep()和wait()的描述哪個是正確的?關于sleep()和wait(),以下描述錯誤的一項是( )A. sleep是線程類(Thread)的方法,wait是Object類的方法;B.
下面對sleep()和wait()的描述哪個是正確的?
關于sleep()和wait(),以下描述錯誤的一項是( )A. sleep是線程類(Thread)的方法,wait是Object類的方法;B. sleep不釋放對象鎖,wait放棄對象鎖;C. sleep暫停線程、但監(jiān)控狀態(tài)仍然保持,結束后會自動恢復;D. wait后進入等待鎖定池,只有針對此對象發(fā)出notify方法后獲得對象鎖進入運行狀態(tài)。解答:Dsleep是線程類(Thread)的方法,導致此線程暫停執(zhí)行指定時間,給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。
Threadwait和sleep的區(qū)別?
1、sleep()是讓某個線程暫停運行一段時間,其控制范圍是由當前線程決定,也就是說,在線程里面決定.2、而wait(),首先,這是由某個確定的對象來調用的,將這個對象理解成一個傳話的人,當這個人在某個線程里面說"暫停!",也是 thisOBJ.wait(),這里的暫停是阻塞3、區(qū)別:1)這兩個方法來自不同的類分別是Thread和Object2)最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。3)wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用synchronized(x){x.notify()//或者wait()}4)sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常
Thread wait和sleep的區(qū)別?
sleep和wait的區(qū)別有:
1,這兩個方法來自不同的類分別是Thread和Object
2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。
3,wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在
任何地方使用
synchronized(x){
x.notify()
//或者wait()
}
4,sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常