精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

亚洲国产综合人成综合网站| 久久精品国产久精国产| 亚洲精品久久久久国产| 日本va中文字幕| 欧洲美女少妇精品| 国产成人精品网址| 欧美专区日韩视频| 夫妻性生活毛片| 久久精品亚洲成在人线av网址| 色中色一区二区| 青少年xxxxx性开放hg| 可以免费看毛片的网站| 三级成人在线视频| 久久免费视频网| 青青青视频在线播放| 老牛精品亚洲成av人片| 欧美日韩国产天堂| 日本福利视频在线| 国产网站在线免费观看| 久久久久久久综合色一本| 91福利视频导航| aaaaaa毛片| 一区免费视频| 久久影院模特热| www久久久久久久| 麻豆视频一区| 欧美一区二区三区视频免费| www.国产区| av资源网在线播放| 亚洲欧美另类在线| 天堂社区 天堂综合网 天堂资源最新版| www.麻豆av| 久久99国产精品久久| 97超级碰碰碰| 国产在线观看成人| 在线观看免费一区二区| 国产一区二区三区免费视频| 国产网站无遮挡| 成人性生交大片免费看中文视频| 欧美美女黄视频| 中文字幕有码av| 日韩免费va| 欧美视频二区36p| 国产午夜大地久久| 日韩激情视频| 中文字幕人成人乱码亚洲电影| 一区二区日韩免费看| 欧美成人在线网站| 国产免费久久久久| 欧美电影《轻佻寡妇》| 亚洲性夜色噜噜噜7777| 黄色片网站免费| 视频一区中文| 国产午夜精品全部视频播放| 极品人妻一区二区三区| 亚洲综合图色| 亚洲欧洲日产国码av系列天堂| 91精品国产自产| 亚洲盗摄视频| 在线午夜精品自拍| 综合 欧美 亚洲日本| 日韩欧美午夜| 久久精品一本久久99精品| 艳妇荡乳欲伦69影片| 亚洲成人99| 欧美日本精品在线| 国产无遮挡免费视频| 中文久久精品| 国产精品www色诱视频| 日韩精选在线观看| 老司机午夜精品99久久| 亚洲va欧美va在线观看| 亚洲国产日韩在线观看| 99天天综合性| 欧洲久久久久久| 在线观看av的网站| 亚洲日本va在线观看| 国产一级做a爰片久久毛片男| 波多野结衣在线高清| 懂色av影视一区二区三区| 免费观看成人在线视频| 精品国产黄a∨片高清在线| 欧美绝品在线观看成人午夜影视| 亚洲午夜精品在线观看| 加勒比色老久久爱综合网| 国产丝袜视频一区| 国产三级精品三级观看| 欧美日韩国产综合网| 69久久夜色精品国产7777 | 国产精品毛片久久久久久| 中文字幕一区二区三区四区五区六区 | 日韩中文综合网| 久久国产露脸精品国产| 亚洲欧美日韩视频二区| 国产精品日韩欧美综合| 精品人妻无码一区二区| 久久午夜免费电影| 国产免费xxx| 欧美成人a交片免费看| 88在线观看91蜜桃国自产| 性久久久久久久久久久| 久久国产精品亚洲人一区二区三区| 九九热精品在线| jizz国产在线观看| 国产成人亚洲综合色影视| 欧美精品成人一区二区在线观看 | 久久视频中文字幕| 久久国产黄色片| 国产一区二区剧情av在线| 久久综合毛片| 视频在线观看入口黄最新永久免费国产 | 成人午夜大片免费观看| 无遮挡亚洲一区| 激情在线视频播放| 欧美日韩国产高清一区二区| 朝桐光av一区二区三区| 小处雏高清一区二区三区| 欧美在线免费观看| www.午夜激情| 亚洲欧美综合另类在线卡通| 欧美 国产 小说 另类| 日本在线成人| 久久精品国产96久久久香蕉| 国产91精品网站| av大片免费观看| 国产精品一区二区三区网站| 性欧美videosex高清少妇| 九色porny视频在线观看| 欧美一级艳片视频免费观看| 精品一区二区三区蜜桃在线| 香蕉久久夜色精品国产| 国产精品久久亚洲| 99福利在线| 欧美精品成人一区二区三区四区| a毛片毛片av永久免费| 很黄很黄激情成人| 3d动漫精品啪啪一区二区三区免费| 福利视频在线看| 91久久免费观看| 91精品人妻一区二区| 99视频一区| 精品久久久久亚洲| 白白色在线观看| 精品久久久久久亚洲综合网 | √天堂资源在线| 色婷婷一区二区三区| 国产精品女主播| 国际av在线| 色网站国产精品| 日韩精品卡通动漫网站| 国产日韩一区| 欧美lavv| 午夜激情成人网| 国产亚洲精品美女久久久| 欧美国产一级片| 国产日韩精品久久久| 91国产精品视频在线观看| 精品日本12videosex| 国产精品日日做人人爱| 欧美激情办公室videoshd| 777久久久精品| 国产在线一卡二卡| 成人在线综合网站| 精品无码国模私拍视频| 亚洲色图美女| 国产精品久久久久免费a∨大胸| 午夜免费视频在线国产| 欧美放荡的少妇| 欧美日韩精品在线观看视频| 成人丝袜视频网| 日韩欧美国产免费| 成人免费电影网址| 91在线色戒在线| 成人性生交大片免费看网站| 国产视频精品免费播放| 国产情侣免费视频| 亚洲免费观看在线观看| 特级特黄刘亦菲aaa级| 性欧美暴力猛交另类hd| 性欧美videosex高清少妇| 国产精品视频一区二区三区综合| 久久久久久香蕉网| 国产日本在线视频| 这里是久久伊人| 欧美福利视频一区二区| 国产欧美一区二区三区在线看蜜臀| 免费av不卡在线| 亚洲理伦在线| 宅男一区二区三区| 99re6热只有精品免费观看| 日本久久91av| caopeng在线| 亚洲欧美精品伊人久久| 国产乱码精品一区二三区蜜臂| 亚洲地区一二三色| 永久免费av无码网站性色av| 国产乱人伦偷精品视频免下载| 国产综合av在线| 国产精品福利在线观看播放| 久久99九九| 日本在线视频一区二区三区| 国产精品国产福利国产秒拍| 日本h片在线观看| 在线视频日韩精品| 天天干天天做天天操| 91精品国产综合久久蜜臀| 国产在线观看黄色| 亚洲午夜一区二区| 伊人久久久久久久久久久久久久| 91理论电影在线观看| 精品国产午夜福利在线观看| 日韩av电影免费观看高清完整版| 男人添女人荫蒂免费视频| 日韩一区二区中文| 欧美精品一区二区三区在线看午夜 | 色又黄又爽网站www久久| 久久免费精彩视频| 国产精品国产自产拍在线| 色欲av无码一区二区三区| 成人性视频免费网站| 国语自产精品视频在线看抢先版图片| 国产丰满美女做爰| 欧美日韩日日摸| 4438国产精品一区二区| 亚洲国产成人porn| 免费人成视频在线| 中文字幕一区二区三区色视频 | 91精品国产高清| av在线导航| 久久夜色精品国产| 91在线品视觉盛宴免费| 亚洲欧洲一区二区三区久久| 神马午夜在线观看| 亚洲成av人乱码色午夜| wwwxxxx国产| 日韩一区二区高清| 99国产精品久久久久久久成人| 精品视频999| 中文字幕av片| 欧美亚洲尤物久久| 波多野结衣在线观看一区| 一本色道久久综合精品竹菊| 黄色免费av网站| 欧美性猛交xxxx免费看漫画| 一级免费在线观看| 精品久久久久久久久久久久久 | 在线视频欧美区| 一级特黄免费视频| 欧美三级韩国三级日本三斤| 中文字幕+乱码+中文| 欧美日韩aaaaaa| 国产精品无码免费播放| 欧美一区二区三区在线观看| 99久久婷婷国产一区二区三区| 555www色欧美视频| 国产成人精品无码高潮| 精品国免费一区二区三区| 蜜桃视频污在线观看| 亚洲精品www久久久| 香蕉视频黄色片| 亚洲色图13p| 欧美日本一道| 久久免费福利视频| 性欧美18xxxhd| 国产精品海角社区在线观看| 久久久久毛片| 99久久精品久久久久久ai换脸| 国产乱人伦精品一区| 免费电影一区| 97精品中文字幕| 久久久久久久9| 亚洲一区二区网站| 久久综合伊人77777麻豆最新章节| 久久99精品一区二区三区三区| 粗大的内捧猛烈进出视频| www.色精品| 亚洲AV无码成人精品区明星换面| 亚洲欧洲精品一区二区三区| 精品亚洲永久免费| 91国产免费看| 超碰在线观看99| 亚洲视频欧美视频| 91高清在线观看视频| 欧美在线性爱视频| 国产精品久久久久久久久久辛辛| 国产福利一区二区三区在线观看| 国产a久久精品一区二区三区| 伊甸园精品99久久久久久| 在线观看一区视频| 杨幂毛片午夜性生毛片 | 国产中文字幕在线观看| xvideos国产精品| 色戒汤唯在线观看| 91精品国产自产在线老师啪| 免费看久久久| 99re8这里只有精品| 亚洲专区在线| 男人女人拔萝卜视频| 久久精品这里都是精品| 欧美黄片一区二区三区| 欧美日免费三级在线| 色呦呦免费观看| 日韩有码在线观看| 亚洲天堂一区二区| 国产一区二区三区四区五区加勒比 | 国产乡下妇女做爰| 欧美精品色一区二区三区| 无码精品人妻一区二区三区影院 | 久久精品日韩无码| 黄色成人在线播放| 午夜精品久久久久久久99老熟妇| 在线不卡国产精品| 中文字幕在线视频久| 国产精品swag| 牛牛国产精品| 人人干人人干人人| 久久这里只有精品视频网| 国产精品 欧美 日韩| 日韩一区二区三区视频在线观看| 大乳在线免费观看| 欧美又大粗又爽又黄大片视频| 日韩三级av高清片| 桥本有菜av在线| 免费看日韩精品| 中文字幕第24页| 色欲综合视频天天天| 欧美在线观看在线观看| 97在线观看视频| 波多野结衣一区二区三区免费视频| 资源网第一页久久久| 毛片一区二区三区| 国产综合精品久久久久成人av| 色哟哟一区二区三区| 国产精品三区www17con| 日本在线中文字幕一区| 人人妻人人做人人爽| 国产·精品毛片| 九九热精品免费视频| 日韩精品一区二区三区蜜臀| 好吊日视频在线观看| 成人网页在线免费观看| 国产大片一区| 五月六月丁香婷婷| 一区二区三区精品在线| www.五月激情| 久久频这里精品99香蕉| 精品三级av| 日本精品一区在线观看| 久久久久久久综合日本| 久久国产香蕉视频| 色婷婷av一区二区三区久久| 亚洲色图图片| 美女av免费观看| 不卡av在线网| 国产无套丰满白嫩对白| 亚洲天堂男人天堂女人天堂| 国产91欧美| 糖心vlog在线免费观看| www.在线成人| 国产suv精品一区二区33| 中文字幕精品在线| 国产日韩在线观看视频| a级黄色片免费| 99久久久免费精品国产一区二区| 日韩精品一区二区亚洲av| 国产一区二区激情| 成人午夜888| 日本十八禁视频无遮挡| 久久久久久99久久久精品网站| 中文字幕一区二区人妻痴汉电车| 久久人体大胆视频| 爱高潮www亚洲精品| 久久精品网站视频| 亚洲天堂免费看| 六月婷婷中文字幕| 国产精品99久久99久久久二8| 婷婷亚洲五月色综合| 欧美成人精品一区二区综合免费| 欧美午夜精品久久久久久浪潮| av在线资源网| 国产欧美日韩伦理| 日本免费在线视频不卡一不卡二| www色aa色aawww| 亚洲激情在线观看| 免费成人黄色网| 免费看国产一级片| 国产精品久久久久久久浪潮网站 | 99精品视频网站| 97精品国产97久久久久久久久久久久| 波多野结衣mp4| 欧美黑人狂野猛交老妇| 欧洲grand老妇人| 香蕉在线观看视频| 欧美三级一区二区| 桃色av一区二区| 99热这里只有精品免费| 国产精品入口麻豆原神| 天堂网在线资源| 亚洲最大福利网| 日本一区中文字幕 |