2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

Java中的線程續(xù)

 五虎斷門刀 2006-11-16
 Java中的線程續(xù)

在線程切換的時(shí)候不涉及CPU寄存器的保存以及進(jìn)程狀態(tài)的保護(hù)。

線程實(shí)現(xiàn)整個(gè)環(huán)境的異步模式,但有時(shí)需要同步(兩個(gè)線程同時(shí)讀寫同一數(shù)據(jù))。

線程通過(guò)sleep或者yeild主動(dòng)放棄CPU的占用。

Run()方法幾乎肯定含有某種形式的循環(huán)——它們會(huì)一直持續(xù)到線程不再需要為止。因此,為了中斷并退出這個(gè)循環(huán),必須規(guī)定特定的條件。否則,除非外部發(fā)出對(duì)線程的stop或者destroy調(diào)用,它會(huì)永遠(yuǎn)運(yùn)行下去,直到程序結(jié)束。

堵塞(掛起)狀態(tài)Blocked可能是由下列五方面的原因造成:

1, 調(diào)用sleep(),使線程進(jìn)入睡眠狀態(tài);

2, ruspend()暫停了線程的執(zhí)行。除非線程收到resume()消息,否則不會(huì)返回可運(yùn)行狀態(tài);

3, wait()暫停了線程執(zhí)行,除非線程收到nofify()或者notifyAll()

4, 線程正在等候一些IO(輸入輸出)操作完成。

5, 線程試圖調(diào)用另一個(gè)對(duì)象的“同步”方法,但哪個(gè)對(duì)象處于鎖定狀態(tài),暫時(shí)無(wú)法使用。

    

Java沒(méi)有監(jiān)視器這個(gè)類,Java提供的解決方法是為每一個(gè)對(duì)象都有其獨(dú)立的監(jiān)視器,當(dāng)一個(gè)線程進(jìn)入一個(gè)具有同步特性的函數(shù)(sychronized)時(shí),其余線程將不操作同一個(gè)對(duì)象的同步函數(shù),換句話說(shuō),同步機(jī)制已經(jīng)融合進(jìn)了Java語(yǔ)言當(dāng)中。

無(wú)論sleep還是suspend都不會(huì)在自己被調(diào)用的時(shí)候解除縮定,必須等到時(shí)間到了或調(diào)用了自己的resume()方法。

Wait()在掛起內(nèi)部調(diào)用的方法時(shí),會(huì)解釋對(duì)象的鎖定,并且能夠自由的退出wait(),因?yàn)橐粋€(gè)notity()可強(qiáng)行使時(shí)間流逝(當(dāng)wait有參數(shù)時(shí))。

Wait()notify()同屬Object()類,而sleep,suspend以及resume同屬Thread類。因此,專門進(jìn)行線程處理的東西也就成為通用基礎(chǔ)類(Object)的一部分。因此,我們可將一個(gè)wait()置入任何同步方法內(nèi)部,無(wú)論在哪個(gè)類里是否進(jìn)行涉及線程的處理。

 

線程池:

池化資源:在面向?qū)ο缶幊讨?,?chuàng)建和銷毀對(duì)象是很費(fèi)時(shí)間的,因?yàn)閯?chuàng)建一個(gè)對(duì)象要獲取內(nèi)存資源或者其它更多的資源,在Java中更是如此,虛擬機(jī)將試圖跟蹤沒(méi)一個(gè)對(duì)象,以便能夠在對(duì)象銷毀后進(jìn)行垃圾回收。所以提高服務(wù)程序效率的一個(gè)手段就是盡可能減少創(chuàng)建和銷毀對(duì)象的次數(shù),特別是一些很耗資源的對(duì)象的創(chuàng)建與銷毀。

一般一個(gè)線程池至少包含下列組成部分。

線程管理器(ThreadPoolManager):用于創(chuàng)建線程池,銷毀線程池,添加新任務(wù)。

工作線程(WorkThread):線程池中線程。

任務(wù)接口(Task):每個(gè)任務(wù)必須實(shí)現(xiàn)的接口,以供工作線程調(diào)度任務(wù)的執(zhí)行。它規(guī)定了任務(wù)的入口,任務(wù)執(zhí)行完后的收尾工作,任務(wù)的執(zhí)行狀態(tài)等。

任務(wù)隊(duì)列:用于存放沒(méi)有處理的任務(wù)。提供一種緩沖機(jī)制。

 

守護(hù)線程:myThread.setDaemon(true);

    守護(hù)線程是一個(gè)后臺(tái)運(yùn)行的線程,從屬于生成它的線程,所以當(dāng)生成守護(hù)線程的線程結(jié)束時(shí),此守護(hù)線程會(huì)隨之消失。相對(duì)與守護(hù)線程的是用戶線程,它有自己的生命周期,不依賴創(chuàng)建它的線程,它可以在創(chuàng)建它的線程結(jié)束后繼續(xù)執(zhí)行。

 

    本站是提供個(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)論公約

    類似文章 更多