What's the upcoming Java concurrency library: jsr166y? jsr166z?

JSR 166 was the original Java concurrency jsr for Java 5 that created java.util.concurrent. They did a maintenance rev in Java 6 called JSR 166x. The Java 7 maintenance rev is JSR 166y. JSR 166z is the closures prototype version.

Currently slated to be included in JSR 166y is:

  • Fork/join (but NOT the ParallelArray framework)
  • TransferQueue / LinkedTransferQueue collection
  • Phasers (CyclicBarriers on steroids)

Push to JDK 8 (at least):

  • Fences API (low level), trying to remove use of Unsafe calls
  • ConcurrentReferenceHashMap (variable strong/weak refs, concurrent, etc)

For more info, javadoc here or join the concurrency-interest mailing list:

  • http://cs.oswego.edu/mailman/listinfo/concurrency-interest

The link on the javac.info site (jsr166z) uses BGGA closures which will not be in JDK7.

The link on Doug Lea's site (jsr166y) should be up to date. Doug is the spec lead. The API has been pruned down to the basics as how the fork-join framework will be used in practice is not yet clear. Presumably libraries will be available at a slightly higher level, and when thing settle down more can be added to JDK8.


Looking at various references available (for example, this Email from Doug Lea), it seems clear that the current JSR for JDK7 concurrency additions is jsr166y. Additionally, if you go to the web page Closures for the Java Programming Language (aka BGGA) and look at (what is currently) the 4th bulleted item "Doug Lea's jsr166y fork-join framework", jsr166y is described as the fork-join framework "without function types" and jsr166z is described as the fork-join framework "with function types."

It looks like jsr166z is a cross between concurrency additions and BGGA. Perhaps this provides concurrency utilities required by BGGA?