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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

wait和sleep的區(qū)別

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

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

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

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿坝县| 全南县| 甘肃省| 云阳县| 永靖县| 金门县| 平定县| 漳浦县| 凤庆县| 思茅市| 临邑县| 呼伦贝尔市| 盖州市| 巩义市| 滦平县| 鸡泽县| 镇宁| 内丘县| 德兴市| 滨海县| 宝鸡市| 漳州市| 太仆寺旗| 明光市| 阿坝| 富阳市| 文水县| 旬阳县| 张家口市| 大方县| 新乡市| 宝鸡市| 丰台区| 西乌| 萍乡市| 永登县| 葵青区| 黑龙江省| 五台县| 迁安市| 灵寿县|