国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

wait和sleep的區別

2019-11-10 18:08:37
字體:
來源:轉載
供稿:網友
1、這兩個方法來自不同的類分別是Thread和Object2、最主要是sleep方法沒有釋放鎖,而 wait 方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。3、wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用(使用范圍) synchronized(x){       x.notify()       //或者wait() }

4、sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常

sleep方法屬于Thread類中方法,表示讓一個線程進入睡眠狀態,等待一定的時間之后,自動醒來進入到可運行狀態,不會馬上進入運行狀態,因為線程調度機制恢復線程的運行也需要時間,一個線程對象調用了sleep方法之后,并不會釋放他所持有的所有對象鎖,所以也就不會影響其他進程對象的運行。但在sleep的過程中有可能被其他對象調用它的interrupt(),產生InterruptedException異常,如果你的程序不捕獲這個異常,線程就會異常終止,進入TERMINATED狀態,如果你的程序捕獲了這個異常,那么程序就會繼續執行catch語句塊(可能還有finally語句塊)以及以后的代碼。

  注意sleep()方法是一個靜態方法,也就是說他只對當前對象有效,通過t.sleep()讓t對象進入sleep,這樣的做法是錯誤的,它只會是使當前線程被sleep 而不是t線程。

wait屬于Object的成員方法,一旦一個對象調用了wait方法,必須要采用notify()和notifyAll()方法喚醒該進程;如果線程擁有某個或某些對象的同步鎖,那么在調用了wait()后,這個線程就會釋放它持有的所有同步資源,而不限于這個被調用了wait()方法的對象。wait()方法也同樣會在wait的過程中有可能被其他對象調用interrupt()方法而產生InterruptedException,效果以及處理方式同sleep()方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 治县。| 修武县| 美姑县| 东平县| 玉环县| 泰兴市| 宁南县| 舟曲县| 吴川市| 彩票| 海伦市| 冕宁县| 屏南县| 南华县| 青铜峡市| 凤台县| 锡林郭勒盟| 济南市| 鄂州市| 淮北市| 黄平县| 满洲里市| 崇礼县| 东平县| 大渡口区| 宜宾市| 浮山县| 女性| 获嘉县| 商南县| 文安县| 舟曲县| 乐至县| 淄博市| 北京市| 霞浦县| 英山县| 丹江口市| 海晏县| 麻阳| 威海市|