麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

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

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

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

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > Java領(lǐng)域中的線程機制-線程(二)

Java領(lǐng)域中的線程機制-線程(二)

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

  基本模型

1

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

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

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

  一般來說,按照映射方式來看,主要可以分為:多對一映射(用戶級方式),一對一映射(內(nèi)核級方式) 和多對多映射(組合方式)3種方式。其中:

  1. 多對一映射(用戶級方式)

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

2

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

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

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

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

  因此,這種模式特點主要有兩點:

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

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

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

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

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

3

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

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

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

  一對一映射模型是真正意義上的并行執(zhí)行,因為這種模型下,創(chuàng)建一條Java的Thread線程是真正的在內(nèi)核中創(chuàng)建并映射了一條內(nèi)核線程的,執(zhí)行過程中,一條線程不會因為另外一條線程的原因而發(fā)生阻塞等情況。

  不過因為是每一個用線程都需要對應(yīng)一個內(nèi)核線程,這種直接映射內(nèi)核線程的模式,所以數(shù)量會存在上限。

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

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

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

4

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

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

  同時,因為用戶線程數(shù)量比內(nèi)核線程數(shù)量多,所以能有效減少內(nèi)核線程開銷。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
主站蜘蛛池模板: 逼逼日| 性中国自由xxxxx孕妇| 怡红院www| 夜先锋av资源网站| 露脸国语对白视频| 任你操网站| 91精品麻豆| 好爽好多水好得真紧| 污小说总裁整夜没拔出| 九色视频网址| 91视频入口| ssss国产在线观看| 一级日本片| 日韩福利社| 在线国产欧美| 陪读妇乱子伦小说| 成人久久精品一区二区三区| 久久国产乱子伦免费精品| 国产日韩欧美| 处处吻动漫高清在线观看| 亚洲免费影院| 台湾一级淫片高清视频| loveme动漫在线观看免费| 日韩在线一区二区三区免费视频 | 日本在线高清版卡免v| 天天夜夜狠狠| 北条麻妃一本到高清在线观看| 真希友田视频中文字幕在线看| 美国式禁忌4桥矿超棒| 国产孕交| 久久99久久99精品| 全彩里番acg里番本子| 被猛男cao尿了| 美女扒开尿口让男人捅爽| 久久久国产乱子伦精品| 东北女大战28公分黑人| 国产一级αv片免费观看| 国产精品久久久久9999| 动漫无遮挡在线观看| 国产剧情jvid在线观看| 日本人六九视频jⅰzzz|