<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          勁爆!Java 協(xié)程要來了。。。

          共 1742字,需瀏覽 4分鐘

           ·

          2021-12-14 02:51

          點(diǎn)擊關(guān)注公眾號,Java干貨及時(shí)送達(dá)

          我們都知道,Java 目前最小的系統(tǒng)調(diào)度單元只支持線程,官方是不支持協(xié)程的,但可以通過第三方框架實(shí)現(xiàn),估計(jì)也很少有人會用吧,多線程就能滿足需求。

          好消息來了,不久的將來,Java 要開始支持協(xié)程了,這真是勁爆消息啊!!

          在 openjdk 的官網(wǎng)上,2021/11/15 這天創(chuàng)建了一個(gè)新的特性:

          JEP draft: Virtual Threads (Preview)

          虛擬線程,我們來看看是什么鬼:

          虛擬線程是一種成本低廉、輕量級的用戶模式的線程實(shí)現(xiàn),它可以充分利用可用硬件,大幅減少編寫、維護(hù)和監(jiān)測高并發(fā)應(yīng)用的工作量。

          低成本+輕量級+用戶態(tài),這一看就是協(xié)程?的定義了。。

          我們都知道使用線程是要十分注意的,因?yàn)榫€程的創(chuàng)建、銷毀都十分消耗系統(tǒng)資源,所以有了線程池,但這還不夠,因?yàn)榫€程的數(shù)量是有限的,線程會阻塞操作系統(tǒng)線程,無法盡可能的提高吞吐量。

          因?yàn)槭褂镁€程的成本很高,所以才會有了虛擬線程,它是用戶態(tài)線程,成本是相當(dāng)?shù)土模{(diào)度也完全由用戶進(jìn)行控制(JDK 中的調(diào)度器),它同樣可以進(jìn)行阻塞,但不用阻塞操作系統(tǒng)線程,充分提高了硬件利用率,高并發(fā)也上了一個(gè)量級,從而實(shí)現(xiàn)了高吞吐量。


          虛擬線程創(chuàng)建方式:

          虛擬線程是java.lang.Thread的一個(gè)實(shí)現(xiàn),可以使用java.lang.Thread.Builder接口創(chuàng)建,如下所示:

          Thread?thread?=?Thread.ofVirtual()
          ?????.name("javastack")
          ?????.unstarted(runnable);

          也可能會通過一個(gè)線程工廠類進(jìn)行創(chuàng)建:

          ThreadFactory?factory?=?Thread.ofVirtual().factory();

          并且,可以通過 Thread.isVirtual() 方法判斷是否虛擬線程。

          虛擬線程運(yùn)行的載體必須是線程,同一個(gè)線程中可以運(yùn)行多個(gè)虛擬線程實(shí)例。


          目前這還是個(gè)草案,預(yù)覽特性,很多細(xì)節(jié)并不是很確定,是不是叫協(xié)程?或者纖程?還是虛擬線程?現(xiàn)在也沒有官方的中文資料,叫什么不重要,我們都知道的是,Java 中的 "協(xié)程" 它要來了!

          有了協(xié)程,Java 的并發(fā)能力將會再上 N 個(gè)臺階……

          我們還是拭目以待吧,目前最新版本是JDK 17,看它在哪個(gè) JDK 版本中落地,到時(shí)候棧長再給大家解讀分享,大家可以持續(xù)關(guān)注公眾號Java技術(shù)棧,公眾號第一時(shí)間推送,不要走開哦,多線程教程也寫了一堆了,可以在公眾號菜單中閱讀。

          具體細(xì)節(jié)和后續(xù)的的進(jìn)展可以參考官方說明:

          https://openjdk.java.net/jeps/8277131

          好了,今天的分享就到這里了,后面棧長會分享更多好玩的 Java 技術(shù)和最新的技術(shù)資訊,關(guān)注公眾號Java技術(shù)棧第一時(shí)間推送,我也將主流 Java 面試題和參考答案都整理好了,在公眾號后臺回復(fù)關(guān)鍵字 "面試" 進(jìn)行刷題。

          最后,你覺得 Java 為什么到現(xiàn)在才開始考慮協(xié)程?歡迎留言討論!

          這真是個(gè)勁爆好消息,轉(zhuǎn)發(fā)、分享給更多 Javaer 小伙伴們吧!

          版權(quán)聲明:本文系公眾號 "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請注明出處,抄襲者一律舉報(bào)+投訴,并保留追究其法律責(zé)任的權(quán)利。



          23 種設(shè)計(jì)模式實(shí)戰(zhàn)(很全)
          官宣:Redis OM 對象映射框架來了!
          你還在遍歷搜索集合?Java 8 一行代碼搞定!
          JetBrains 發(fā)布下一代 IDE,IDEA 可以扔了
          重磅!JDK 17 發(fā)布,正式免費(fèi)。。
          面試官:Java 8 map 和 flatMap 的區(qū)別?
          終于!Spring Cloud 2021 正式發(fā)布。。
          推薦一款代碼神器,代碼量至少省一半!
          程序員精通各種技術(shù)體系,45歲求職難!
          重磅!Spring Boot 2.6 正式發(fā)布
          Spring Boot 學(xué)習(xí)筆記,這個(gè)太全了!



          關(guān)注Java技術(shù)棧看更多干貨



          獲取 Spring Boot 實(shí)戰(zhàn)筆記!
          瀏覽 24
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天日天天舔天天爽天天操 | 青娱乐免费偷拍视频播放 | www在线| 黄色一级在线观看 | 国产色视频在线 |