多線程之sleep和wait的區別

sleep:

使當前線程睡眠,但是並不釋放鎖
sleep是Thread類的方法
sleep可以用在任何地方
sleep必須捕獲異常

wait:

使當前進程等待,但是釋放鎖。
wait是Object類的方法
wait,包括notify和notifall只能在synchrnized修飾的方法或代碼塊中使用
sleep不需要捕獲異常

關於釋放鎖的理解:

你在人工售票口買票,sleep方法只是讓你站在買票的地點睡會,在睡覺期間別人不能越過你買票。等你醒了就可以直接買票了
但是如果wait方法,你就需要離開當前的位置,一邊去等着,這時候後面排隊的人是可以上前一步去買票的,當有notify通知你可以買票了,你還得老老實實排隊去

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章