views:

880

answers:

3

Hello!

I wanted to play around with the upcoming concurrency library which is going to be included in
Java 7 according to this website.

It seems to be named JSR166.

In most places its reference implementation is referred as jsr166y, while few resources call it jsr166z.

I discovered two totally different javadocs for each reference implementation.

Now, which implementation is going to be included in Java 7?

EDIT
While people who answered suggest that jsr166y is the thing for Java 7, I discovered this document (TS-5515) from JavaOne. This document refers to Java 7 but mentions LinkedAsyncAction which is only present in jsr166z javadocs. (Confusion...)

+2  A: 

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.

Tom Hawtin - tackline
+2  A: 

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?

Eddie
BGGA does not require these concurrency additions. The design of the extra additions could be influenced by what sort of closures we get beyond anonymous inner classes.
Tom Hawtin - tackline
+7  A: 

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)
  • Fences API (low level), trying to remove use of Unsafe calls
  • TransferQueue / LinkedTransferQueue collection
  • ConcurrentReferenceHashMap (variable strong/weak refs, concurrent, etc)
  • Phasers (CyclicBarriers on steroids)

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

Alex Miller
So the downloadable jsr166y JAR is just not yet complete, right?
ivan_ivanovich_ivanoff
Probably not. I think the jar may only include the ForkJoin stuff.
Alex Miller