偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java 9的這一基本功能,你可能從未聽過

開發(fā) 后端
2017年7月即將發(fā)布的Java 9將會新增和修訂不少功能和特性。在搜索JDK增強(qiáng)提議(JEP)時發(fā)現(xiàn),JEP 266對CompletableFuture進(jìn)行了一些有趣的改進(jìn),更新并發(fā)功能和支持Reactive Streams。

2017年7月即將發(fā)布的Java 9將會新增和修訂不少功能和特性。在搜索JDK增強(qiáng)提議(JEP)時發(fā)現(xiàn),JEP 266對CompletableFuture進(jìn)行了一些有趣的改進(jìn),更新并發(fā)功能和支持Reactive Streams。

本文的焦點(diǎn)就是JEP 266的改進(jìn)和一些有趣的特性,它極有可能成為Java 9中最常用的特性之一。

JEP 266改進(jìn)計(jì)劃
JEP 266是Oracle草擬JDK增強(qiáng)協(xié)議里面的一員,其中對并發(fā)進(jìn)行了大量的更新。根據(jù)提案,將要進(jìn)行更新的特性有:

  • 支持Reactive Streams發(fā)布-訂閱框架接口
  • 對CompletableFuture API進(jìn)行更新,例如支持延遲、超時、子類化和其它方法
  • 其它一般改進(jìn),例如小調(diào)整和javadoc規(guī)范重寫

本文重點(diǎn)關(guān)注前兩個改進(jìn)。首先,Java 9將支持Reactive Streams,這是一個來自Java社區(qū)的改進(jìn)計(jì)劃,旨在改進(jìn)開發(fā)人員的并發(fā)工作流程。其次是CompletableFuture API提供的幾個fixer-uppers,可以讓開發(fā)人員回到Future<T>。

Flow類
Reactive Streams發(fā)布-訂閱框架里面將嵌套一個Flow類,以及開發(fā)人員可以用來創(chuàng)建自定義組件使用的SubmissionPublisher。

先從最上面的說起,Reactive Streams主要解決背壓(back-pressure)問題。當(dāng)傳入的任務(wù)速率大于系統(tǒng)處理能力時,數(shù)據(jù)處理將會對未處理數(shù)據(jù)產(chǎn)生一個緩沖區(qū)。

與此同時,我們還與Akka團(tuán)隊(duì)的高級開發(fā)人員Konrad Malawski進(jìn)行了溝通,他是Reactive Streams計(jì)劃的***,解釋了Reactive Streams的重要性以及如何使用。

Oracle指出,新的增強(qiáng)將包括“一個很小的接口,其定義符合(來自Reactive Stream initiative的)廣泛參與”,這就是Flow類的來源。

Reactive Streams由4個Java接口構(gòu)成:

  • 處理器(Processor)
  • 發(fā)布商(Publisher)
  • 訂閱用戶(Subscriber)
  • 訂閱(Subscription)

Flow類允許相互關(guān)聯(lián)的接口和靜態(tài)方法來建立流控制組件,其中發(fā)布者產(chǎn)生由一個或多個訂閱者消費(fèi)的項(xiàng)目,每個訂閱者由訂閱管理。

Reactive Streams構(gòu)建在java.util.concurrent.Flow容器對象下,開發(fā)者可以在這里找到Flow.Publisher,一個用作lambda表達(dá)式或方法引用的賦值目標(biāo)功能接口。該接口可以讓開發(fā)者更容易生成Flow.Subscription元素,并且將它們鏈接在一起。

另一個元素Flow.Subscriber,是異步工作機(jī)制,由請求觸發(fā)。它可以從Flow.Subscription請求多個元素,開發(fā)者還可以根據(jù)需要自定義緩沖區(qū)大小。

這些接口適用于并發(fā)和分布式異步設(shè)置,它們之間的通信依賴于一種簡單的流控制形式,可用于避免資源管理問題。

感興趣的用戶可以在java.util.concurrent.Flow下面查看代碼示例。

目前已有一些第三方庫實(shí)現(xiàn)了Reactive Streams接口,你無需等到Java 9發(fā)布便可嘗試一下。

CompletableFuture新特性
Java 8引進(jìn)了CompletableFuture,繼承自Future<T>。Futures是非常有用的,當(dāng)我們不希望或者不需要一個直接計(jì)算結(jié)果的時候,我們會收到一個Future對象來保存計(jì)算完成時分配的實(shí)際結(jié)果。通過調(diào)用complete()方法并且無需異步等待即可顯式完成。它還允許在一系列操作中構(gòu)建管道數(shù)據(jù)流程。

這樣,任何類型的可用值都可以在Future中使用默認(rèn)返回值,即使計(jì)算沒有完成。這也將成為CompletableFuture提案更新的一部分,包括延遲和超時、更好地支持子類化和一些實(shí)用方法。

更多CompletableFuture功能改進(jìn)和提案,大家可以前往這里查看。

總結(jié)
Java 9即將帶來一些重大的更新與改進(jìn),其中JEP 266會是最有趣的一部分改進(jìn)。它的改進(jìn)方案主要來自社區(qū)的一些倡議,旨在幫助開發(fā)人員解決異步處理方面的一些重大問題。

責(zé)任編輯:張燕妮 來源: jihong10102006
相關(guān)推薦

2017-01-13 16:22:49

開發(fā)者

2010-06-28 21:33:17

eMule協(xié)議

2023-10-11 10:40:00

GNOME

2012-10-22 16:47:45

IBMdw

2020-10-19 10:16:02

AWSDynamoDB功能

2010-04-16 09:06:18

WPF 4

2022-10-17 15:47:19

JavaScript開發(fā)Web

2022-05-09 08:40:14

Python技巧代碼

2020-11-16 12:09:25

Python開發(fā)工具

2019-04-16 08:21:46

2010-01-05 15:27:04

.NET Framew

2010-03-02 17:43:31

WCF框架處理流程

2021-06-03 09:20:33

微服務(wù)架構(gòu)代碼

2019-09-16 08:22:12

特權(quán)訪問管理PAM網(wǎng)絡(luò)安全

2011-04-29 14:04:56

一體機(jī)

2015-07-07 14:17:56

物聯(lián)網(wǎng)操作系統(tǒng)

2010-01-20 18:20:50

2023-05-11 08:59:43

Nginx配置服務(wù)器

2010-01-04 10:47:08

智能交換機(jī)

2009-12-03 09:08:21

路由器基本功能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號