欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中內(nèi)核線程理論及實例詳解

 更新時間:2021年03月09日 08:16:39   作者:小妮淺淺  
在本篇文章里小編給大家整理了一篇關(guān)于Java中內(nèi)核線程理論及實例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

1、概念

內(nèi)核線程是直接由操作系統(tǒng)內(nèi)核控制的,內(nèi)核通過調(diào)度器來完成內(nèi)核線程的調(diào)度并負責(zé)將其映射到處理器上執(zhí)行。內(nèi)核態(tài)下的線程執(zhí)行速度理論上是最高的,但是用戶不會直接操作內(nèi)核線程,而是通過內(nèi)核線程的接口——輕量級進程來間接的使用內(nèi)核線程。這種輕量級進程就是所謂的線程。

2、優(yōu)點

由于內(nèi)核線程的支持,每一個線程都是一個獨立的單元,因此就算某一個線程掛掉了,也不會導(dǎo)致整個進程掛掉。

3、缺點

這種實現(xiàn)方式也存在局限性。由于是基于內(nèi)核線程實現(xiàn)的,所以當(dāng)涉及到線程的操作時(創(chuàng)建、運行、切換等)就涉及到系統(tǒng)調(diào)度,而系統(tǒng)調(diào)度則會導(dǎo)致用戶態(tài)和內(nèi)核態(tài)之間的來回切換,代價是比較昂貴的。

知識點擴展:

線程的實現(xiàn)

線程是比進程更輕量級的調(diào)度執(zhí)行單位,在linux里面,線程和進程沒有什么區(qū)別,唯一的就是在地址空間,線程的切換虛擬內(nèi)存空間依然是相同的,但是進程切換是不同的。

目前主流的操作系統(tǒng)都提供的線程實現(xiàn),java則提供的線程實現(xiàn)方法都是native的,因為不同的硬件和操作系統(tǒng)提供線程調(diào)度方式并不盡相同,所以java沒用采用和平臺無關(guān)的統(tǒng)一手段來實現(xiàn)。

用戶線程實現(xiàn)

用戶線程指不需要內(nèi)核支持而在用戶程序中實現(xiàn)的線程,其不依賴于操作系統(tǒng)核心,應(yīng)用進程利用線程庫提供創(chuàng)建、同步、調(diào)度和管理線程的函數(shù)來控制用戶線程。

不需要用戶態(tài)/核心態(tài)切換,速度快,操作系統(tǒng)內(nèi)核不知道多線程的存在,因此一個線程阻塞將使得整個進程(包括它的所有線程)阻塞。使用用戶線程實現(xiàn)的程序一般都比較復(fù)雜,java曾經(jīng)用過,不過最后還是放棄了。

優(yōu)點:

切換由用戶態(tài)程序自己控制內(nèi)核切換,不需要內(nèi)核干涉,少了進出內(nèi)核態(tài)的消耗。

缺點:

多核處理器很難講線程映射到其他處理器上,單線程阻塞會造成該進程阻塞。

到此這篇關(guān)于Java中內(nèi)核線程理論及實例詳解的文章就介紹到這了,更多相關(guān)Java中內(nèi)核線程是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java eclipse 整個項目或包查找只定字符串并替換操作

    java eclipse 整個項目或包查找只定字符串并替換操作

    這篇文章主要介紹了java eclipse 整個項目或包查找只定字符串并替換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 使用InputStream的available()能否用來判斷當(dāng)前流是否讀取到文件

    使用InputStream的available()能否用來判斷當(dāng)前流是否讀取到文件

    這篇文章主要介紹了使用InputStream的available()能否用來判斷當(dāng)前流是否讀取到文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java 多線程死鎖的產(chǎn)生以及如何避免死鎖

    Java 多線程死鎖的產(chǎn)生以及如何避免死鎖

    這篇文章主要介紹了Java 多線程死鎖的產(chǎn)生以及如何避免死鎖,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java爬蟲(Jsoup與WebDriver)的使用

    Java爬蟲(Jsoup與WebDriver)的使用

    這篇文章主要介紹了Java爬蟲(Jsoup與WebDriver)的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring Boot開發(fā)Web應(yīng)用詳解

    Spring Boot開發(fā)Web應(yīng)用詳解

    這篇文章主要介紹了Spring Boot開發(fā)Web應(yīng)用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Springboot整合RabbitMq測試TTL的方法詳解

    Springboot整合RabbitMq測試TTL的方法詳解

    這篇文章主要介紹了Springboot整合RabbitMq測試TTL的設(shè)置,設(shè)置TTL一般由兩種設(shè)置方法,設(shè)置整個隊列的過期時間另一種設(shè)置單個消息的過期時間,通過示例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)徹底理解關(guān)于KMP算法

    Java數(shù)據(jù)結(jié)構(gòu)徹底理解關(guān)于KMP算法

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)關(guān)于KMP算法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 使用MyBatisPlus自動生成代碼后tomcat運行報錯的問題及解決方法

    使用MyBatisPlus自動生成代碼后tomcat運行報錯的問題及解決方法

    這篇文章主要介紹了使用MyBatisPlus自動生成代碼后tomcat運行報錯的問題及解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java基礎(chǔ)篇之對象數(shù)組練習(xí)

    Java基礎(chǔ)篇之對象數(shù)組練習(xí)

    對象數(shù)組就是數(shù)組里的每個元素都是類的對象,賦值時先定義對象,然后將對象直接賦給數(shù)組就行了,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)篇之對象數(shù)組練習(xí)的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • JAVA文件讀寫例題實現(xiàn)過程解析

    JAVA文件讀寫例題實現(xiàn)過程解析

    這篇文章主要介紹了JAVA文件讀寫例題實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論