大家好,我是堆疊長!
我們都知道,Java 目前最小的系統調度單元只支持執行緒,官方是不支持協程的,但可以通過第三方框架實作,估計也很少有人會用吧,多執行緒就能滿足需求,
好訊息來了,不久的將來,Java 要開始支持協程了,這真是勁爆訊息啊!!
在 openjdk 的官網上,2021/11/15 這天創建了一個新的特性:

JEP draft: Virtual Threads (Preview)
虛擬執行緒,我們來看看是什么鬼:
虛擬執行緒是一種成本低廉、輕量級的用戶模式的執行緒實作,它可以充分利用可用硬體,大幅減少撰寫、維護和監測高并發應用的作業量,
低成本+輕量級+用戶態,這一看就是 協程 的定義了,,
我們都知道使用執行緒是要十分注意的,因為執行緒的創建、銷毀都十分消耗系統資源,所以有了執行緒池,但這還不夠,因為執行緒的數量是有限的,執行緒會阻塞作業系統執行緒,無法盡可能的提高吞吐量,
因為使用執行緒的成本很高,所以才會有了虛擬執行緒,它是用戶態執行緒,成本是相當低廉的,調度也完全由用戶進行控制(JDK 中的調度器),它同樣可以進行阻塞,但不用阻塞作業系統執行緒,充分提高了硬體利用率,高并發也上了一個量級,從而實作了高吞吐量,
虛擬執行緒創建方式:
虛擬執行緒是 java.lang.Thread 的一個實作,可以使用 java.lang.Thread.Builder 介面創建,如下所示:
Thread thread = Thread.ofVirtual()
.name("javastack")
.unstarted(runnable);
也可能會通過一個執行緒工廠類進行創建:
ThreadFactory factory = Thread.ofVirtual().factory();
并且,可以通過 Thread.isVirtual() 方法判斷是否虛擬執行緒,
虛擬執行緒運行的載體必須是執行緒,同一個執行緒中可以運行多個虛擬執行緒實體,
目前這還是個草案,預覽特性,很多細節并不是很確定,是不是叫協程?或者纖程?還是虛擬執行緒?現在也沒有官方的中文資料,叫什么不重要,我們都知道的是,Java 中的 "協程" 它要來了!
有了協程,Java 的并發能力將會再上 N 個臺階……
我們還是拭目以待吧,目前最新版本是 JDK 17,看它在哪個 JDK 版本中落地,到時候堆疊長再給大家解讀分享,大家可以持續關注公眾號Java技術堆疊,公眾號第一時間推送,不要走開哦,多執行緒教程也寫了一堆了,可以在公眾號選單中閱讀,
具體細節和后續的的進展可以參考官方說明:
https://openjdk.java.net/jeps/8277131
好了,今天的分享就到這里了,后面堆疊長會分享更多好玩的 Java 技術和最新的技術資訊,關注公眾號Java技術堆疊第一時間推送,我也將主流 Java 面試題和參考答案都整理好了,在公眾號后臺回復關鍵字 "面試" 進行刷題,
最后,你覺得 Java 為什么到現在才開始考慮協程?歡迎留言討論!
這真是個勁爆好訊息,轉發、分享給更多 Javaer 小伙伴們吧!
著作權宣告: 本文系公眾號 "Java技術堆疊" 原創,原創實屬不易,轉載、參考本文內容請注明出處,抄襲者一律舉報+投訴,并保留追究其法律責任的權利,
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.別在再滿屏的 if/ else 了,試試策略模式,真香!!
3.臥槽!Java 中的 xx ≠ null 是什么新語法?
4.Spring Boot 2.6 正式發布,一大波新特性,,
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378094.html
標籤:Java
