JDK-8169515 : Review and update description
  • Type: Sub-task
  • Component: core-libs
  • Sub-Component: java.util.concurrent
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-11-09
  • Updated: 2017-05-03
  • Resolved: 2017-05-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Fixed
Description
The work for JEP 266: More Concurrency Updates resulted in the inclusion of enhancements to the `java.util.concurrent` package (and in addition many small implementation improvements not mentioned here).

The main enhancements are:

- the Flow API, which is a low-level API for establishing flow-controlled components.
  For example, it can provide the interoperable layer for asynchronous stream-based processing with 
  non-blocking back pressure.
  The interface `java.util.concurrent.Flow` contains a number of nested interfaces that correspond to the 
  reactive-streams (specification)[http://www.reactive-streams.org/].  `Publisher`s produce items consumed 
  by one or more  `Subscriber`s, each managed by a `Subscription`.  Communication relies on a simple form
  of flow control (method `Subscription.request`, for communicating back pressure) that can be used to avoid 
  resource management problems that may otherwise occur in "push" based systems.

- Time-based enhancements to `java.util.concurrent.CompletableFuture` that enable a future to complete with 
  a value or exceptionally after a certain duration, see methods `orTimeout` and `completeTimeout`.
  In addition, a complementary `Executor` returned by the static methods named `delayedExecutor` allow a task 
  to execute after a certain duration.  This may be combined with `Executor` receiving methods on 
  `CompletableFuture` to support operations with time-delays.

- Improvements to `java.util.concurrent.CompletableFuture` making it easier to subclass, see the methods
  `minimalCompletionStage`,  `newIncompleteFuture`, and `copy`.