溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行線程的講解

發(fā)布時(shí)間:2022-01-11 09:57:38 來源:億速云 閱讀:119 作者:柒染 欄目:編程語言

這篇文章給大家介紹如何進(jìn)行線程的講解,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

線程調(diào)度
在java技術(shù)中,線程通常是搶占式的而不需要時(shí)間片分配進(jìn)程(分配給每個(gè)線程相等的cpu時(shí)間的進(jìn)程)。一個(gè)經(jīng)常犯的錯(cuò)誤是認(rèn)為“搶占”就是“分配時(shí)間片”。
在Solaris平臺(tái)上的運(yùn)行環(huán)境中,相同優(yōu)先級(jí)的線程不能相互搶占對(duì)方的cpu時(shí)間。但是,在使用時(shí)間片的windows平臺(tái)運(yùn)行環(huán)境中,可以搶占相同甚至更高優(yōu)先級(jí)的線程的cpu時(shí)間。搶占并不是絕對(duì)的,可是大多數(shù)的JVM的實(shí)現(xiàn)結(jié)果在行為上表現(xiàn)出了嚴(yán)格的搶占。縱觀JVM的實(shí)現(xiàn),并沒有絕對(duì)的搶占或是時(shí)間片,而是依賴于編碼者對(duì)wait和sleep這兩個(gè)方法的使用。
搶占式調(diào)度模型就是許多線程屬于可以運(yùn)行狀態(tài)(等待狀態(tài)),但實(shí)際上只有一個(gè)線程在運(yùn)行。該線程一直運(yùn)行到它終止進(jìn)入可運(yùn)行狀態(tài)(等待狀態(tài))或是另一個(gè)具有更高優(yōu)先級(jí)的線程變成可運(yùn)行狀態(tài)。在后一種情況下,底優(yōu)先級(jí)的線程被高優(yōu)先級(jí)的線程搶占,高優(yōu)先級(jí)的線程獲得運(yùn)行的機(jī)會(huì)。
線程可以因?yàn)楦鞣N各樣的原因終止并進(jìn)入可運(yùn)行狀態(tài)(因?yàn)槎氯?/p>

例如,線程的代碼可以在適當(dāng)時(shí)候執(zhí)行Thread.sleep()方法,故意讓線程中止;線程可能為了訪問資源而不得不等待直到該資源可用為止。
所有可運(yùn)行的線程根據(jù)優(yōu)先級(jí)保持在不同的池中。一旦被堵塞的線程進(jìn)入可運(yùn)行狀態(tài),它將會(huì)被放回適當(dāng)?shù)目蛇\(yùn)行池中。非空最高優(yōu)先級(jí)的池中的線程將獲得cpu時(shí)間。
最后一個(gè)句子是不精確的,因?yàn)椋?br/>(1)在大多數(shù)的JVM實(shí)現(xiàn)中,雖然不能保證說優(yōu)先級(jí)有任何意義,但優(yōu)先級(jí)看起來象是用搶占方式工作。
(2)微軟windows的評(píng)價(jià)影響線程的行為,以至盡管一個(gè)處于可運(yùn)行狀態(tài)的優(yōu)先級(jí)為5的java線程正在等待cpu時(shí)間,但是一個(gè)優(yōu)先級(jí)為4的java線程卻可能正在運(yùn)行。
實(shí)際上,許多JVM用隊(duì)列來實(shí)現(xiàn)池,但沒有保證行為。

關(guān)于如何進(jìn)行線程的講解就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI