建立service類:
public
class
service
catch
(exception e)}}
public
void
xwait()
}}
.
sleepthread類:
//呼叫service中的xsleep方法
public
class
sleepthread
implements
runnable
public
void
run(
)}
.
waitthread類:
public
class
waitthread
implements
runnable
public
void
run(
)}
.
測試test類:
public
class
test
}
執行結果:
waitthread執行緒等待著sleepthread執行緒進入休眠狀態休眠3秒後,並且執行結束後,釋放了鎖,才得以執行。故得到:sleep()休眠的時候並沒有釋放鎖。
修改service類:
public
class
service
catch
(exception e)}}
public
void
xwait()
catch
(exception e)}}
}
.
test類:
public
class
test
}
執行結果:
waitthread執行緒啟動起來,然後waitthread執行緒呼叫了wait()方法進入等待狀態,並且釋放了鎖,sleepthread執行緒獲取鎖呼叫了service中的sleep()方法進入休眠
狀態,三秒之後休眠結束,呼叫notifyall()喚醒waitthread執行緒,執行之後釋放鎖,結束業務!故得到呼叫wait()方法會釋放鎖
執行緒中sleep和wait的區別
1,這兩個方法來自不同的類分別是thread和object 2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法 3,wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在任何時候都可以使用 4,sle...
執行緒休眠sleep和wait
我們都知道,休眠執行緒有兩種方法,那就是sleep 和wait 先簡單了解一下這兩個方法 1.sleep 是thread裡的方法 static修飾,類名.呼叫即可 設定的時間一到,自動會醒過來繼續執行 2.wait 是object裡的方法 必須用notify或者notifyall來喚醒 在看黑馬程式...
執行緒sleep 和wait 的區別
1 這兩個方法來自不同的類分別是thread和object 2 最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。3 wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在任何地方使用 使用範圍 4 s...