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