精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

阿里面試官問我Java線程和操作系統(tǒng)線程什么關(guān)系

系統(tǒng)
這個問題是安琪拉之前面試被問到的一個問題,正好順著上一篇文章介紹完線程調(diào)用時的用戶態(tài)和內(nèi)核態(tài)的切換,后續(xù)把Java 并發(fā)的都一起講了。

[[376045]]

本文轉(zhuǎn)載自微信公眾號「安琪拉的博客」,作者安琪拉的博客 。轉(zhuǎn)載本文請聯(lián)系安琪拉的博客公眾號。

 這個問題是安琪拉之前面試被問到的一個問題,正好順著上一篇文章介紹完線程調(diào)用時的用戶態(tài)和內(nèi)核態(tài)的切換,后續(xù)把Java 并發(fā)的都一起講了。

面試官:聽前一個面試官說你Java并發(fā)這塊掌握的不錯,我們深入的交流一下;

我: 看了看面試官頭部稀疏的結(jié)締組織,已然覺得這場面試不簡單,不過好在事前把安琪拉的博客看了個遍,有所準(zhǔn)備,我回答說:咳咳,掌握的還算可以。

面試官:Java線程用過的吧?

我:用過。

面試官:那你給我講講Java線程和操作系統(tǒng)的?

我:啊!!!

劇情不應(yīng)該這樣的啊,開場不應(yīng)該先是 synchronized 或者 volatile,再然后是線程池和AQS,怎么上來就整這玩意。

我:好的,那我分三段講,

  • 用戶態(tài)的線程
  • 內(nèi)核態(tài)的線程
  • Java 線程源碼

1. 用戶態(tài)的線程

第一階段:

其實(shí)早期的時候,操作系統(tǒng)是沒有線程的概念,線程是后面加進(jìn)來的,操作系統(tǒng)剛開始只有進(jìn)程,操作系統(tǒng)分配資源的最小單位是進(jìn)程,進(jìn)程與進(jìn)程之間相關(guān)隔離,每個進(jìn)程有自己的內(nèi)存空間,文件描述符,CPU調(diào)度以進(jìn)程作為最小調(diào)度單元;

第二階段:

初期的多線程,線程是在用戶空間下實(shí)現(xiàn)的。

什么意思?我們都知道內(nèi)存分用戶空間和系統(tǒng)空間,系統(tǒng)空間是給操作系統(tǒng)使用的,用戶空間是應(yīng)用程序使用的,應(yīng)用程序如果需要訪問系統(tǒng)空間,需要進(jìn)行系統(tǒng)調(diào)用,從用戶態(tài)切換到內(nèi)核態(tài),這里詳細(xì)可以參考我上一篇文章: [講講用戶空間和內(nèi)核空間]

那怎么在用戶空間實(shí)現(xiàn)的多線程呢?

實(shí)際上是操作系統(tǒng)按進(jìn)程維度來調(diào)度,操作系統(tǒng)是不去管你用戶線程的切換的,應(yīng)用程序自己在用戶空間實(shí)現(xiàn)線程的創(chuàng)建、維護(hù)和調(diào)度。模型如下圖:

當(dāng)線程在用戶空間下實(shí)現(xiàn)時,操作系統(tǒng)對線程的存在一無所知,操作系統(tǒng)只能看到進(jìn)程,而不能看到線程。所有的線程都是在用戶空間實(shí)現(xiàn)。在操作系統(tǒng)看來,每一個進(jìn)程只有一個線程。

這種方式的好處之一就是即使操作系統(tǒng)不支持線程,也可以通過庫函數(shù)來支持線程。在JDK1.1中,就用的綠色線程,而不是原始線程。

下面是關(guān)于green thread的解釋,因?yàn)間reen thread不是今天的重點(diǎn),就不細(xì)說了。

green threads 是一種由運(yùn)行環(huán)境或虛擬機(jī)(VM)調(diào)度,而不是由本地底層操作系統(tǒng)調(diào)度的線程。綠色線程并不依賴底層的系統(tǒng)功能,模擬實(shí)現(xiàn)了多線程的運(yùn)行,這種線程的管理調(diào)配發(fā)生在用戶空間而不是內(nèi)核空間,所以它們可以在沒有原生線程支持的環(huán)境中工作。

在Java 1.1中,綠色線程(至少在 Solaris 上)是JVM 中使用的唯一一種線程模型。由于綠色線程和原生線程比起來在使用時有一些限制,隨后的 Java 版本中放棄了綠色線程,轉(zhuǎn)而使用native threads。

這種模式的優(yōu)點(diǎn)和缺點(diǎn)都非常明顯:

缺點(diǎn): 因?yàn)椴僮飨到y(tǒng)不知道線程的存在,CPU的時間片切換是以進(jìn)程為維度的,如果進(jìn)程中有某個線程進(jìn)行了某些耗時長的操作,會阻塞整個進(jìn)程。另外當(dāng)一個進(jìn)程中的某一個線程(綠色線程)進(jìn)行系統(tǒng)調(diào)用時,比如網(wǎng)絡(luò)IO、缺頁中斷等操作而導(dǎo)致線程阻塞,操作系統(tǒng)也會阻塞整個進(jìn)程,即使這個進(jìn)程中其它線程還在工作。

優(yōu)點(diǎn): 使用庫函數(shù)來實(shí)現(xiàn)的線程切換,就免去了用戶態(tài)到內(nèi)核態(tài)的切換,這個味道熟不熟,對了,Go的協(xié)程就有借鑒了一部分這個思想。

2. 內(nèi)核態(tài)的線程

在 Java1.2 之后. Linux中的JVM是基于pthread實(shí)現(xiàn)的, 可以直接說 Java 線程就是依賴操作系統(tǒng)實(shí)現(xiàn)的,是1:1的關(guān)系。

現(xiàn)在的Java中線程的本質(zhì),其實(shí)就是操作系統(tǒng)中的線程

另外我看很多資料上說 Java線程的實(shí)現(xiàn)采用的是LWP(輕量級進(jìn)程),實(shí)際上從Linux 內(nèi)核2.6開始,就把LinuxThread 換成了新的線程實(shí)現(xiàn)方式NPTL,NPTL解決了LinuxThread中絕大多數(shù)跟POSIX標(biāo)準(zhǔn)不兼容的特性,并提供了更好的性能,可擴(kuò)展性及可維護(hù)性等等。

LinuxThread使用的是1 * 1模型,即每一個用戶態(tài)線程都有一個內(nèi)核的管理實(shí)體跟其對應(yīng),這個內(nèi)核對應(yīng)的管理實(shí)體就是進(jìn)程,又稱LWP(輕量級進(jìn)程)

希望了解更多NPTL的可以去看詳細(xì)介紹NPTL.

我們知道,每個線程都有它自己的線程上下文,線程上下文包括線程的ID、棧、程序計數(shù)器、通用的寄存器等的合集。總覺得上下文這個詞很模棱二可,但是發(fā)現(xiàn)也找不到更合適的詞來描述。

線程有自己的獨(dú)立的上下文,由操作系統(tǒng)調(diào)度,但是也有一個缺點(diǎn),那就是線程消耗資源太大了,例如在linux上,一個線程默認(rèn)的棧大小是1M,單機(jī)創(chuàng)建幾萬個線程就有點(diǎn)吃力了。所以后來在編程語言的層面上,就出現(xiàn)了協(xié)程這個東西。

協(xié)程的模式有點(diǎn)類似結(jié)合了上面二種方式,即是在用戶態(tài)做線程資源切換,也讓操作系統(tǒng)在內(nèi)核層做線程調(diào)度。

協(xié)程跟操作系統(tǒng)的線程是有映射關(guān)系的,例如我們建了m個協(xié)程,需要在N個線程上執(zhí)行,這就是m: n的方案,這n個線程也是靠操作系統(tǒng)調(diào)度實(shí)現(xiàn)。

另外協(xié)程是按需使用棧內(nèi)存的,所以理論上可以輕輕松松創(chuàng)建百萬級的協(xié)程。

目前協(xié)程這塊支持的最好的是go語言, 不過現(xiàn)在OpenJDK社區(qū)也正在為JDK增加協(xié)程的支持。

3. 線程的源碼

我們在Java中調(diào)用 new Thread(Runnable ***).start() 方法時,怎么從用戶態(tài)切到內(nèi)核態(tài),發(fā)送系統(tǒng)調(diào)用,在操作系統(tǒng)內(nèi)核層中創(chuàng)建一個線程的呢?

這個可以一步步往下鉆,關(guān)鍵點(diǎn)最后在JVM層系統(tǒng)調(diào)用pthread_create創(chuàng)建線程。

首先是native方法: private native void start0();

下到Thread.c 文件,:

OpenJDK1.8源代碼第44行,方法映射;追著 JVM_StartThread 進(jìn)到 jvm.cpp

linux 系統(tǒng)下的,看 src/hotspot/os/linux/os_linux.cpp

主要關(guān)注 pthread_create 這里,是通過linux 的 c庫函數(shù)完成系統(tǒng)調(diào)用,從用戶態(tài)切到內(nèi)核態(tài)完成線程的創(chuàng)建。

文中源代碼地址:

  1. Thread.c 
  2.  
  3. pthread_create 
  4.  
  5. os_linux 

 

責(zé)任編輯:武曉燕 來源: 安琪拉的博客
相關(guān)推薦

2023-12-20 14:35:37

Java虛擬線程

2021-05-08 07:53:33

面試線程池系統(tǒng)

2025-09-24 17:05:02

2024-09-11 22:51:19

線程通訊Object

2023-11-06 17:39:35

JavaArrayList線程

2020-10-26 07:07:50

線程安全框架

2021-04-19 09:27:03

Java線程操作系統(tǒng)

2021-12-02 08:19:06

MVCC面試數(shù)據(jù)庫

2024-04-10 09:47:59

Java調(diào)度虛擬線程

2021-06-03 08:55:54

分布式事務(wù)ACID

2024-04-02 09:45:27

線程池Executors開發(fā)

2022-11-25 17:29:27

分布式事務(wù)

2022-06-02 09:29:55

線程組線程樹狀結(jié)構(gòu)

2024-03-11 18:18:58

項(xiàng)目Spring線程池

2024-09-09 15:09:30

2021-09-27 07:11:18

MySQLACID特性

2021-04-25 09:36:20

Go協(xié)程線程

2021-05-20 08:54:16

Go面向對象

2010-08-23 15:06:52

發(fā)問

2020-04-16 08:22:11

HTTPS加解密協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

gogo在线高清视频| 看免费黄色录像| 涩涩视频在线播放| 久久久午夜精品理论片中文字幕| 国产成人精品在线| 欧美性生给视频| 中文字幕一区二区三区日韩精品| 婷婷成人激情在线网| 色阁综合av| 亚洲乱码精品久久久久.. | 精品国产无码在线| 丰满岳乱妇国产精品一区| 国产欧美一区二区色老头 | 91精品国产综合久久香蕉的用户体验 | 青青在线精品| 亚洲一区二区三区中文字幕在线| 免费影院在线观看一区| 亚洲一级在线播放| aa级大片欧美三级| 久久艳片www.17c.com| 国产黄色三级网站| 日韩免费大片| 欧美视频在线视频| 四虎4hu永久免费入口| 九色在线视频| 成人av中文字幕| 国产日韩欧美日韩大片| 天天干在线播放| 欧美午夜国产| 日韩中文字幕精品| 久久精品国产亚洲av麻豆| 日韩精品亚洲专区在线观看| 91传媒视频在线播放| 日韩欧美精品免费| 国产调教视频在线观看| 中文在线资源观看网站视频免费不卡| 国产精品裸体一区二区三区| 99热这里精品| 美女久久久精品| 欧美一区深夜视频| 日本一本高清视频| 欧美久久99| 久久影视电视剧免费网站清宫辞电视| www.99热| 爽爽窝窝午夜精品一区二区| 精品日韩成人av| 亚洲色图欧美自拍| 日韩免费在线电影| 欧美日韩亚洲丝袜制服| 九色91popny| 亚洲成人不卡| 色老汉一区二区三区| 国产97在线 | 亚洲| 77thz桃花论族在线观看| 洋洋av久久久久久久一区| 女同性恋一区二区| 成人片在线看| 一区二区三区四区在线播放| 中国女人做爰视频| 青青在线视频| 一区av在线播放| 岛国大片在线播放| 国产精品—色呦呦| 午夜精品一区在线观看| 播放灌醉水嫩大学生国内精品| 偷拍自拍在线看| 色综合久久中文综合久久牛| 北条麻妃视频在线| 国产精品伦一区二区| 欧美精选一区二区| www日本在线观看| 国产福利资源一区| 日韩电影中文字幕| 一区二区三区伦理片| 精品一区二区三区在线| 日韩在线免费视频观看| 日本少妇高清视频| 精品动漫3d一区二区三区免费版| 91国偷自产一区二区三区的观看方式| 日韩毛片在线播放| 久久一区二区三区超碰国产精品| 国产精品久久77777| 国产精品-色哟哟| 成人午夜免费av| 精品日本一区二区| h视频在线免费| 亚洲色图欧洲色图婷婷| 日韩一区二区高清视频| 麻豆mv在线看| 欧美日韩在线电影| 精品国产一二区| 欧美人与拘性视交免费看| 中文字幕欧美国内| 天堂资源在线播放| 美女国产一区| 亚洲最大福利网站| 裸体xxxx视频在线| 亚洲摸摸操操av| 春日野结衣av| 国产精品va视频| 日韩va亚洲va欧洲va国产| 少妇av片在线观看| 欧美精品国产一区| 国产精品99久久久久久www| 99草在线视频| wwwwxxxxx欧美| 国产精品美女在线播放| 高清毛片在线观看| 4hu四虎永久在线影院成人| 国产激情视频网站| 亚洲国产精品久久久天堂| 97超视频免费观看| 国产日韩一级片| 国产亚洲一区字幕| 成人黄色大片网站| 国产剧情一区二区在线观看| 精品呦交小u女在线| 青娱乐免费在线视频| 久久av最新网址| 99精彩视频| 最新电影电视剧在线观看免费观看| 亚洲国产cao| 精品亚洲视频在线| 精品久久久久久久| 国产69久久精品成人| 亚洲精品国产精| 一区在线播放视频| 国产精品入口免费软件| 欧美久久精品| 久久久久久久香蕉网| 一级日韩一级欧美| 日本一二三不卡| 国产男女无遮挡| 久久精品色播| 欧美激情精品久久久久久黑人| 亚洲系列第一页| 中文字幕第一页久久| 欧美私人情侣网站| 日韩精品导航| 日本不卡不码高清免费观看| 国产精品国产三级国产普通话99| www.99热这里只有精品| 美女精品视频在线| 久久夜精品va视频免费观看| 中文字幕久久熟女蜜桃| 国产清纯在线一区二区www| 91免费视频网站在线观看| 欧美理论电影在线精品| 欧美激情在线播放| 国产国语亲子伦亲子| 亚洲手机成人高清视频| 99视频在线观看视频| 欧美在线日韩| 91青青草免费观看| 欧美午夜大胆人体| 欧美xxxxx牲另类人与| 国产精品老熟女一区二区| 国产一区二区三区在线观看精品| 熟女熟妇伦久久影院毛片一区二区| 久久青草视频| 日韩一区二区三区国产| 国产美女www爽爽爽视频| 亚洲欧美一区二区三区国产精品 | 亚洲一区二区不卡视频| 欧美久久久网站| 另类视频在线观看| 成人福利小视频| 亚洲电影在线免费观看| 少妇被狂c下部羞羞漫画| 亚洲免费婷婷| 日韩高清av| 亚洲精品乱码日韩| 久久999免费视频| 午夜在线观看视频18| 色妞www精品视频| 多男操一女视频| 丁香一区二区三区| 欧美 日韩 亚洲 一区| 久久99精品久久久久久园产越南| 国产精品久久久久久亚洲影视| 麻豆传媒在线免费看| 日韩精品一区二区三区三区免费| 日韩欧美性视频| 国产精品人人做人人爽人人添 | 日韩中文字幕在线免费| 久久97精品| 国产精品电影在线观看| 黄网站视频在线观看| 精品福利在线导航| 国产一级片av| 亚洲男女一区二区三区| 黄色a一级视频| 免费高清成人在线| a级黄色小视频| 成人在线免费观看视频| aaa级精品久久久国产片| 日本免费久久| 欧美精品情趣视频| 青青操在线视频| 欧美一区二区视频免费观看| 国产成人无码精品久在线观看| 久久精品一区四区| 肉丝美足丝袜一区二区三区四| 美女视频一区免费观看| 日韩中文字幕亚洲精品欧美| 欧美日日夜夜| 91香蕉电影院| 97久久香蕉国产线看观看| 欧美成人精品三级在线观看| 蜜桃视频在线播放| 日韩欧美的一区| 无码人妻精品一区二区蜜桃色欲| 亚洲免费在线看| 蜜臀久久99精品久久久久久| 成人美女视频在线观看| 三上悠亚av一区二区三区| 亚洲国产一区二区三区高清| 日本高清不卡aⅴ免费网站| 一本一道久久a久久综合精品| 九色丨蝌蚪丨成人| 成人h猎奇视频网站| 成人va天堂| 国内外成人免费激情在线视频网站| 免费在线午夜视频| 亚洲色图激情小说| 女人18毛片一区二区三区| 9191国产精品| 亚洲国产无线乱码在线观看| 欧美午夜宅男影院在线观看| 久久影院一区二区| 亚洲天堂av一区| 欧美另类69xxxx| 久久久久国产成人精品亚洲午夜| 午夜不卡久久精品无码免费| 国产精品白丝av| 免费成人黄色大片| 青草国产精品久久久久久| 久久婷婷五月综合色国产香蕉| 亚洲国产影院| 欧美一级免费播放| 欧美不卡在线| 男人日女人的bb| 最新国产精品| 日本黄xxxxxxxxx100| 68国产成人综合久久精品| 艳色歌舞团一区二区三区| 久久中文字幕av| 在线观看成人av| 欧美国产一区二区三区激情无套| 亚洲一区二区在线免费观看| 波多野结衣在线播放一区| 天天人人精品| 国产精品久久久久久久| 亚洲欧洲精品一区二区| 日韩av在线中文字幕| 在线观看成人一级片| 亚洲精品小说| 成人小视频在线观看免费| 国一区二区在线观看| 国产 日韩 欧美在线| 国产日韩一区| 欧美激情成人网| 日韩精品亚洲一区| 我看黄色一级片| 精品一区二区三区在线观看国产| 婷婷中文字幕在线观看| 国产成人av网站| 免费a v网站| 久久久综合视频| 俄罗斯毛片基地| 亚洲欧美国产高清| 日本一二三区视频| 在线精品视频免费观看| 一区二区 亚洲| 精品欧美黑人一区二区三区| 四虎影视精品成人| 国产一区二区三区精品久久久| av在线播放免费| 久青草国产97香蕉在线视频| 92久久精品| 国产精品电影观看| 日韩不卡在线视频| 美媛馆国产精品一区二区| 手机在线电影一区| 无码熟妇人妻av在线电影| 玖玖精品视频| 亚洲视频在线不卡| 99re视频精品| 可以免费看av的网址| 亚洲香蕉伊在人在线观| 天天干天天色综合| 欧美精品久久一区二区三区| 欧美视频一二区| 这里只有精品在线观看| 大香伊人中文字幕精品| 国产精品久久久久久av福利软件| 欧美不卡在线观看| 欧美日韩在线不卡一区| 亚洲成av人片一区二区密柚| 99精品人妻少妇一区二区| 久久99久久久欧美国产| 中文字幕在线观看的网站| 中文字幕国产精品一区二区| 国产真实夫妇交换视频| 欧美日韩一区二区三区四区五区| 午夜视频在线播放| 欧美精品一二区| 在线观看精品| 好吊色欧美一区二区三区四区 | 亚洲午夜精品久久久久久久久久久久| 2024最新电影免费在线观看| 国产不卡精品视男人的天堂| 97人人澡人人爽人人模亚洲| 国产伦精品一区二区三区视频青涩 | 国产精品亚洲一区二区三区在线观看| 91观看网站| 超碰成人久久| 国产a级一级片| 国产suv一区二区三区88区| аⅴ天堂中文在线网| 精品久久久久久久久久| 国内精品久久久久久久久久| 中日韩午夜理伦电影免费 | 国产精品综合网站| 国产精品嫩模av在线| 亚洲人成无码网站久久99热国产| 久久精品国产秦先生| 精品人妻无码一区二区三区 | 男人添女荫道口喷水视频| 经典三级在线一区| 婷婷色一区二区三区| 精品久久久久久久大神国产| 黄色www视频| 欧美日韩福利视频| 粉嫩av国产一区二区三区| 亚洲在线色站| 日本视频免费一区| 在线 丝袜 欧美 日韩 制服| 亚欧色一区w666天堂| www.黄色一片| 久99九色视频在线观看| 国产精久久久| 日韩精品一区二区三区电影| 极品少妇一区二区| 成人做爰视频网站| 欧美片网站yy| 黄色免费在线看| 成人做爰www免费看视频网站| 欧美a级成人淫片免费看| 一道本视频在线观看| 成人午夜亚洲| 国产精品免费久久久久久| av亚洲在线观看| av五月天在线| 欧美激情综合五月色丁香| 青青草视频在线观看免费| 国产香蕉精品视频一区二区三区| 日韩三区免费| 亚洲日本精品一区| 紧缚捆绑精品一区二区| av激情在线观看| 日韩美女一区二区三区| 国语对白在线刺激| 久久久久久精| 首页综合国产亚洲丝袜| 亚洲av熟女国产一区二区性色| 欧美日韩亚洲不卡| 黄色网页在线看| 91久久偷偷做嫩草影院| 韩日成人在线| 免费a级黄色片| 欧美在线影院一区二区| 午夜激情视频在线| 666精品在线| 一区二区三区导航| 亚洲精品国产精品国自产网站| 欧美日韩中文精品| 成人短视频在线观看| 国产精品美女诱惑| 久久国产88| 波多野结衣在线网址| 亚洲大尺度美女在线| 美女100%一区| 色哺乳xxxxhd奶水米仓惠香| av高清久久久| 中文字幕自拍偷拍| 欧美精品videosex性欧美| 亚洲精品456| 欧美国产在线一区| 精品国产乱码久久久久久天美| seseavlu视频在线| 99免费在线观看视频| 久久久久综合| 欧美日韩在线视频免费| 日韩av一区在线观看| 羞羞视频在线观看一区二区| 黄页网站大全在线观看| 中文在线一区二区| 少妇又色又爽又黄的视频| 国产啪精品视频|