久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java線程中sleep和wait的區(qū)別詳細(xì)介紹

 gearss 2017-01-09
 Java中的多線程是一種搶占式的機(jī)制,,而不是分時(shí)機(jī)制,。搶占式的機(jī)制是有多個(gè)線程處于可運(yùn)行狀態(tài),但是只有一個(gè)線程在運(yùn)行,。
共同點(diǎn)
1. 他們都是在多線程的環(huán)境下,,都可以在程序的調(diào)用處阻塞指定的毫秒數(shù),并返回,。
2. wait()和sleep()都可以通過(guò)interrupt()方法 打斷線程的暫停狀態(tài) ,,從而使線程立刻拋出InterruptedException。
如果線程A希望立即結(jié)束線程B,,則可以對(duì)線程B對(duì)應(yīng)的Thread實(shí)例調(diào)用interrupt方法,。如果此刻線程B正在wait/sleep/join,則線程B會(huì)立刻拋出InterruptedException,,在catch() {} 中直接return即可安全地結(jié)束線程,。
需要注意的是,InterruptedException是線程自己從內(nèi)部拋出的,并不是interrupt()方法拋出的,。對(duì)某一線程調(diào)用 interrupt()時(shí),,如果該線程正在執(zhí)行普通的代碼,那么該線程根本就不會(huì)拋出InterruptedException,。但是,,一旦該線程進(jìn)入到 wait()/sleep()/join()后,就會(huì)立刻拋出InterruptedException ,。
不同點(diǎn)
1.Thread類的方法:sleep(),yield()等
Object的方法:wait()和notify()等
2.每個(gè)對(duì)象都有一個(gè)鎖來(lái)控制同步訪問(wèn),。Synchronized關(guān)鍵字可以和對(duì)象的鎖交互,來(lái)實(shí)現(xiàn)線程的同步,。
sleep方法沒有釋放鎖,,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法,。
3.wait,,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用
4.sleep必須捕獲異常,,而wait,,notify和notifyAll不需要捕獲異常
線程的調(diào)度
線程調(diào)度器按線程的優(yōu)先級(jí)高低選擇高優(yōu)先級(jí)線程(進(jìn)入運(yùn)行中狀態(tài))執(zhí)行,同時(shí)線程調(diào)度是搶先式調(diào)度,,即如果在當(dāng)前線程執(zhí)行過(guò)程中,,一個(gè)更高優(yōu)先級(jí)的線程進(jìn)入可運(yùn)行狀態(tài),,則這個(gè)線程立即被調(diào)度執(zhí)行,。
搶先式調(diào)度又分為:時(shí)間片方式和獨(dú)占方式。在時(shí)間片方式下,,當(dāng)前活動(dòng)線程執(zhí)行完當(dāng)前時(shí)間片后,,如果有其他處于就緒狀態(tài)的相同優(yōu)先級(jí)的線程,系統(tǒng)會(huì)將執(zhí)行權(quán)交給其他就緒態(tài)的同優(yōu)先級(jí)線程,;當(dāng)前活動(dòng)線程轉(zhuǎn)入等待執(zhí)行隊(duì)列,,等待下一個(gè)時(shí)間片的調(diào)度。
在獨(dú)占方式下,,當(dāng)前活動(dòng)線程一旦獲得執(zhí)行權(quán),,將一直執(zhí)行下去,直到執(zhí)行完畢或由于某種原因主動(dòng)放棄CPU,,或者是有一高優(yōu)先級(jí)的線程處于就緒狀態(tài),。
舉例說(shuō)明
首先我想說(shuō)的是:在多線程編程中,經(jīng)常會(huì)使用sleep與wait操作,,我們理解sleep與wait的最大區(qū)別是sleep等待是不會(huì)釋放當(dāng)前鎖,,而wait則反之。我今天想到一個(gè)現(xiàn)實(shí)例子來(lái)比較這兩者的區(qū)別。
我以去火車站買票的例子來(lái)說(shuō)明,。我們?nèi)セ疖囌举I票,,當(dāng)站到售票窗口前要告訴售票員需要到哪里的票,什么時(shí)候發(fā)車的,,售票員就通過(guò)電腦去給我們打印票,,這個(gè)時(shí)候我們就得等待。如果我們用sleep模式,,就得一直站在那里等,,直到售票員給我們票;如果用wait模式,這個(gè)時(shí)候就離開我們所站的位置,,后面的票友就可能站到我當(dāng)前的位置(窗口前),,我們要取票的話,就得重新排在隊(duì)伍后面去取票,。  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多