???????關于纖程在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版本,了解就行。