程序 進程 線程 纖程

???????關于纖程在JDK里面不直接支持,纖程有個名字叫協(xié)程,這個里面區(qū)分四個概念 程序,進程,線程,纖程,這是通俗易懂的概念。

關于纖程和線程的本質(zhì)區(qū)別是一個通過內(nèi)核空間,一個不通過內(nèi)核空間

???????Linux操作系統(tǒng)分為兩個不同的級別 ,一個是用戶級,一個是系統(tǒng)級,JVM是跑在用戶空間里的,他要進行系統(tǒng)調(diào)用的時候要通過內(nèi)核空間來進行調(diào)用,這其中就包括了啟動一個個線程,當啟動一個線程的時候,需要內(nèi)核調(diào)用,這個過程比較復雜,消耗資源比較多,正是因為這種并發(fā)比較重量級,就干脆把線程挪到用戶空間去,一個個線程就是棧來回切換的記錄。所以每一個纖程和每一個纖程對應的也是一個纖程棧,我自己執(zhí)行的時候對應第一個棧數(shù)據(jù),整個運行的時候運行到這里了可以讓他暫停,運行到了下一個可以讓下一個暫停,他們本質(zhì)看上去也是CPU執(zhí)行,他們之間切換的時候通過用戶空間的,不通過系統(tǒng)空間,所以切換資源消耗低,切換也比較快。
??????????到目前JDK13都沒見官方支持纖程的影子,JAVA要想支持纖程,需要用開源第三方的纖程庫。
啟動一個纖程要占到1M沒存,操作系統(tǒng)是支撐不了多少個纖程的。纖程的管理和執(zhí)行現(xiàn)在在JDK不成熟,不直接支持,可以采用下面這個庫。

<!-- https://mvnrepository.com/artifact/co.paralleluniverse/quasar-core -->
<dependency>
    <groupId>co.paralleluniverse</groupId>
    <artifactId>quasar-core</artifactId>
    <version>0.8.0</version>
</dependency>

?????不過目前還沒到1.0版本,了解就行。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容