国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:2日期:2022-08-15 15:14:16
1、概念

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

2、優(yōu)點

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

3、缺點

這種實現(xiàn)方式也存在局限性。由于是基于內(nèi)核線程實現(xiàn)的,所以當涉及到線程的操作時(創(chuàng)建、運行、切換等)就涉及到系統(tǒng)調(diào)度,而系統(tǒng)調(dià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沒用采用和平臺無關的統(tǒng)一手段來實現(xiàn)。

用戶線程實現(xiàn)

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

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

優(yōu)點:

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

缺點:

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

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

標簽: Java
相關文章:
主站蜘蛛池模板: 晋宁县| 万年县| 尼勒克县| 定安县| 库车县| 台湾省| 谷城县| 玛曲县| 五河县| 广东省| 天祝| 开原市| 石台县| 布尔津县| 渭南市| 漳州市| 泗阳县| 清苑县| 习水县| 宿州市| 滦平县| 玛多县| 育儿| 拜城县| 麦盖提县| 汝南县| 乌苏市| 高雄县| 泽普县| 三江| 措美县| 张家川| 光山县| 平阴县| 英超| 日喀则市| 灌阳县| 玛多县| 同德县| 泰兴市| 虹口区|