女人张开腿让男人桶个爽,久久99国产综合精品女同,欧美+亚洲+国产,麻花豆mv国产剧,久久精品国产久精国产69

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Java領(lǐng)域中的線(xiàn)程機(jī)制-線(xiàn)程(二)

Java領(lǐng)域中的線(xiàn)程機(jī)制-線(xiàn)程(二)

來(lái)源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2022-08-03 15:41:48 1659512508

  基本模型

1

  由于Java 中,JVM主要是由C/C++實(shí)現(xiàn),所以Java層線(xiàn)程最終還是會(huì)映射到JVM層線(xiàn)程,而Java層的線(xiàn)程到操作系統(tǒng)層線(xiàn)程就得需要看具體的JVM的具體實(shí)現(xiàn)來(lái)決定。

  一般來(lái)說(shuō),我們都把用戶(hù)線(xiàn)程看作更高層面的線(xiàn)程,而內(nèi)核線(xiàn)程則向用戶(hù)線(xiàn)程提供支持。

  由此可見(jiàn),用戶(hù)線(xiàn)程和內(nèi)核線(xiàn)程之間必然存在一定的映射關(guān)系,不同的操作系統(tǒng)可能采取不同的映射方式。

  一般來(lái)說(shuō),按照映射方式來(lái)看,主要可以分為:多對(duì)一映射(用戶(hù)級(jí)方式),一對(duì)一映射(內(nèi)核級(jí)方式) 和多對(duì)多映射(組合方式)3種方式。其中:

  1. 多對(duì)一映射(用戶(hù)級(jí)方式)

  多對(duì)一映射是指多個(gè)用戶(hù)線(xiàn)程被映射到一個(gè)內(nèi)核線(xiàn)程上。每一個(gè)進(jìn)程都對(duì)應(yīng)著一個(gè)內(nèi)核線(xiàn)程,進(jìn)程內(nèi)的所有線(xiàn)程也都對(duì)應(yīng)著該內(nèi)核線(xiàn)程。

2

  多對(duì)一映射模型是指多條用戶(hù)線(xiàn)程映射同一條內(nèi)核線(xiàn)程的情況,其中用戶(hù)線(xiàn)程由庫(kù)調(diào)度器進(jìn)行調(diào)度,而內(nèi)核線(xiàn)程由操作系統(tǒng)調(diào)度器來(lái)完成。

  對(duì)于用戶(hù)線(xiàn)程而言,其會(huì)按照一定的策略輪流執(zhí)行,具體的調(diào)度算法有庫(kù)調(diào)度器完成。

  任意一個(gè)時(shí)刻每一個(gè)進(jìn)程中都只有一個(gè)用戶(hù)線(xiàn)程被執(zhí)行,它們的執(zhí)行都由用戶(hù)態(tài)的代碼完成切換。

  在不支持線(xiàn)程的操作系統(tǒng)中有庫(kù)來(lái)實(shí)現(xiàn)線(xiàn)程控制,用戶(hù)線(xiàn)程創(chuàng)建,銷(xiāo)毀,切換的開(kāi)銷(xiāo)代價(jià)比內(nèi)核線(xiàn)程小。

  因此,這種模式特點(diǎn)主要有兩點(diǎn):

  首先,可以節(jié)省內(nèi)核態(tài)到用戶(hù)態(tài)切換的開(kāi)銷(xiāo)

  其次,線(xiàn)程的數(shù)量不會(huì)受到內(nèi)核線(xiàn)程的限制

  但是,因?yàn)榫€(xiàn)程切換的工作是由用戶(hù)態(tài)的代碼完成的,所以一個(gè)進(jìn)程內(nèi),如果當(dāng)一條線(xiàn)程發(fā)生阻塞時(shí),與該內(nèi)核線(xiàn)程對(duì)應(yīng)的進(jìn)程內(nèi)的其他所有的用戶(hù)線(xiàn)程也會(huì)一起陷入阻塞。

  2. 一對(duì)一映射(內(nèi)核級(jí)方式)

  一對(duì)一映射是指每個(gè)用戶(hù)線(xiàn)程都會(huì)被影射到一個(gè)內(nèi)核線(xiàn)程上,用戶(hù)的整個(gè)生命周期都綁定到所映射的內(nèi)核線(xiàn)程上。一個(gè)進(jìn)程內(nèi)可以有一個(gè)用戶(hù)線(xiàn)程和至少一個(gè)用戶(hù)線(xiàn)程,都對(duì)應(yīng)著各自一個(gè)和至少一個(gè)內(nèi)核線(xiàn)程,進(jìn)程內(nèi)的所有線(xiàn)程也都一一對(duì)應(yīng)著各自?xún)?nèi)核線(xiàn)程。

3

  一對(duì)一映射模型是指一條用戶(hù)線(xiàn)程對(duì)應(yīng)著內(nèi)核中的一條線(xiàn)程的情況,其中用戶(hù)線(xiàn)程由庫(kù)調(diào)度器進(jìn)行調(diào)度,而內(nèi)核線(xiàn)程由操作系統(tǒng)調(diào)度器來(lái)完成,而Java中采用的就是這種模型。

  在這種方式下,多個(gè)CPU能并行執(zhí)行同一個(gè)進(jìn)程內(nèi)的多個(gè)線(xiàn)程。

  如果進(jìn)程內(nèi)的某個(gè)線(xiàn)程被阻塞,就可以切換到該進(jìn)程的其他線(xiàn)程繼續(xù)執(zhí)行,并且能切換執(zhí)行其他進(jìn)程的線(xiàn)程。

  一對(duì)一映射模型是真正意義上的并行執(zhí)行,因?yàn)檫@種模型下,創(chuàng)建一條Java的Thread線(xiàn)程是真正的在內(nèi)核中創(chuàng)建并映射了一條內(nèi)核線(xiàn)程的,執(zhí)行過(guò)程中,一條線(xiàn)程不會(huì)因?yàn)榱硗庖粭l線(xiàn)程的原因而發(fā)生阻塞等情況。

  不過(guò)因?yàn)槭敲恳粋€(gè)用線(xiàn)程都需要對(duì)應(yīng)一個(gè)內(nèi)核線(xiàn)程,這種直接映射內(nèi)核線(xiàn)程的模式,所以數(shù)量會(huì)存在上限。

  并且同一個(gè)核心中,多條線(xiàn)程的執(zhí)行需要頻繁的發(fā)生上下文切換以及內(nèi)核態(tài)與用戶(hù)態(tài)之間的切換,所以如果線(xiàn)程數(shù)量過(guò)多,切換過(guò)于頻繁會(huì)導(dǎo)致線(xiàn)程執(zhí)行效率下降。

  3. 多對(duì)多映射(組合方式)

  多對(duì)多映射是指將一對(duì)一映射(內(nèi)核級(jí)方式)和多對(duì)一映射(用戶(hù)級(jí)方式)組合起來(lái),通過(guò)綜合兩者優(yōu)點(diǎn)來(lái)形成的一種映射方式。該方式在用戶(hù)空間創(chuàng)建,銷(xiāo)毀,切換,調(diào)度線(xiàn)程,但是進(jìn)程中的多個(gè)用戶(hù)線(xiàn)程會(huì)被影射到若干個(gè)內(nèi)核線(xiàn)程上。

4

  多對(duì)多映射模型就可以避免上面一對(duì)一映射模型和多對(duì)一映射模型帶來(lái)的弊端,也就是多條用戶(hù)線(xiàn)程映射多條內(nèi)核線(xiàn)程,這樣即可以避免一對(duì)一映射模型的切換效率問(wèn)題和數(shù)量限制問(wèn)題,也可以避免多對(duì)一映射模型的阻塞問(wèn)題。

  每一個(gè)內(nèi)核線(xiàn)程負(fù)責(zé)與之綁定的若干用戶(hù)線(xiàn)程,進(jìn)程中的某個(gè)線(xiàn)程發(fā)生系統(tǒng)阻塞并不會(huì)導(dǎo)致整個(gè)進(jìn)程阻塞,而阻塞該內(nèi)核線(xiàn)程內(nèi)的所對(duì)應(yīng)的若干用戶(hù)線(xiàn)程,其他線(xiàn)程依舊可以照常執(zhí)行。

  同時(shí),因?yàn)橛脩?hù)線(xiàn)程數(shù)量比內(nèi)核線(xiàn)程數(shù)量多,所以能有效減少內(nèi)核線(xiàn)程開(kāi)銷(xiāo)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問(wèn)題是什么?

ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運(yùn)算符?

Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過(guò)程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36
IT通常說(shuō)的平臺(tái)是什么意思?

在信息技術(shù)(IT)領(lǐng)域,”平臺(tái)”這個(gè)詞有著廣泛的含義,它常常指代支持軟件應(yīng)用開(kāi)發(fā)和運(yùn)行的基礎(chǔ)框架和環(huán)境。以下是對(duì)”平臺(tái)”這個(gè)概念的更深入...詳情>>

2023-10-14 11:55:36
什么是PowerPivot?

什么是PowerPivotPowerPivot,全稱(chēng)”P(pán)owerPivot for Excel”,是Microsoft提供的一種數(shù)據(jù)分析工具,可以作為Excel的插件使用。通過(guò)PowerPivot,...詳情>>

2023-10-14 11:25:48