精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

責任編輯:editor004

作者:核子可樂譯

2017-01-14 18:30:09

摘自:51CTO

Java 9即將在2017年7月正式發布,并提供一份關于新增和修訂的功能以及一些特性的說明清單。作為甲骨文公司起草的JDK增強提議(簡稱JEP)之一,它包含了很多有趣的更新,目的是用于解決并行機制相關的問題。

Java 9即將在2017年7月正式發布,并提供一份關于新增和修訂的功能以及一些特性的說明清單。對JDK增強提議(簡稱JEP)進行搜索時,我們發現了JEP 266中包含了:對CompletableFuture進行了不少更新,和更新了并發功能和要支持Reactive Streams機制相關的內容,這引起了我的注意。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

在本文中,我們就聊聊JEP 266的新增和修訂的功能吧,并且它很有可能成為Java 9 的特性之一。

1.Java 9將迎來哪些強化?

作為甲骨文公司起草的JDK增強提議(簡稱JEP)之一,它包含了很多有趣的更新,目的是用于解決并行機制相關的問題。

根據這份提議,Java 9將迎來以下變更與更新:

各接口支持Reactive Streams發布的訂閱框架。

CompletableFuture API將得到全面改進,包括支持支持延遲、超時、子類化和其它方法。

更多小型調整與javadoc規范修改。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

這里我們主要分析兩項核心內容。第一項內容是Java 9將支持Reactive Streams,這個提議來自Java技術社區提出的改進計劃,目的是改進開發者的并行工作流程。其次是CompletableFuture API的修復性提升,可以讓開發者回到Future

但這些都有怎樣的實際意義呢?

2.Flow類介紹

第一項更新的“各接口支持Reactive Streams發布的訂閱框架”,就是將新的Flow類嵌套進去,和可供開發者用于創建自定義組件的SubmissionPublisher。

讓我們逐一進行討論。Reactive Streams能夠解決背壓(back-pressure)難題。當輸入任務速率高于系統的處理能力時,就會發生數據累積并會對未處理數據提供一個緩沖區。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

就此,我們與Reactive Streams開發團隊Akka高級開發者Konrad Malawski進行了交流,他解釋了Reactive Streams 的重要性以及如何使用。

甲骨文方面指出,這項新增強將包含“一套小型接口,用以對接Reactive Streams項目中各類得到廣泛使用的定義接口。”

而Flow類的作用也正在于此。Reactive Steams由4個Java接口構建而成:

處理器(Processor)

發布商(Publisher)

訂閱用戶(Subscriber)

訂閱(Subscription)

Flow類允許各互關聯接口與靜態方法建立受控流程組件,發布者產生由一個或多個訂閱者消費的項目,每個訂閱者由訂閱管理。

Reactive Streams位于容器對象java.util.concurrent.Flow之下。大開發者可以在這里找到 Flow.Publisher,一個用作 lambda 表達式或方法引用的賦值目標功能接口。此接口將顯著簡化面向Flow.Subscription的元素生成方式,并由Flow.Subscription將二者關聯起來。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

另一項元素為Flow.Subscriber,是用異步工作機制運作,并能通過請求實現觸發。它能能夠從Flow.Subscription處獲取多個元素,大家可根據需求自定義緩沖區大小。

這些接口同時適用于并發與分布式異步設置,且接口之間的通信,是通過一種簡單的流控制形式實現,并可用于避免發生資源管理的問題。

感興趣的朋友可以查看關于java.util.concurrent.Flow的代碼示例。轉到此處:http://gee.cs.oswego.edu/dl/concurrency-interest/index.html/

另外,大家也無需等待Java 9正式發布即可體驗Reactive Streams接口,目前也已經在多種第三方庫采用此類接口。

3.CompletableFuture新特性

Java 8首次引入CompletableFuture是,就已經對Future進行了擴展。Future適用于,當我們不希望或者不需要一個直接計算結果的時候,我們會收到一個 Future 對象來保存計算完成時分配的實際結果。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

CompletableFuture對Future對象做出兩方面擴展。其能夠在無需任何異步等待的情況下,通過調用complete()方法即可顯式完成。另外,它還允許利用一系列操作中,構建起數據處理管道。

如此一來,任意類型的值皆能在 Future 中使用默認返回值,即使當前計算尚未完成,它也可使用默認即時結果。這些更新將能夠有效解決開發者在使用Java 8時面臨的部分難題。

總結

Java 9確實為我們帶來一系列重大更新與改進,其中 JEP 266 會是最有趣的一部分改進。另外,我們認為JEP 266,也是甲骨文發布的最值得關注的更新之一,因為其源自技術社區本身的倡議,旨在幫助開發者解決異步流程處理中的一些常見難題。我們對此深表贊賞,同時也期待著Java 9的正式發布。

Java 9為何讓開發者如此興奮,來看看它的這一基本功能!

  原文標題:The Essential Java 9 Feature You Probably Never Heard Of

作者:Henn Idan

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 天峨县| 天台县| 天镇县| 绥宁县| 行唐县| 博客| 宁蒗| 嘉义市| 拉孜县| 荆州市| 昌平区| 永平县| 淄博市| 锦屏县| 开鲁县| 莱西市| 团风县| 梓潼县| 潞西市| 正宁县| 佛坪县| 聂荣县| 达孜县| 宁陕县| 资阳市| 光山县| 确山县| 兰坪| 镇平县| 高平市| 田林县| 宜丰县| 融水| 儋州市| 弋阳县| 保靖县| 万山特区| 甘孜| 中西区| 辽宁省| 青州市|