Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

  • Docs for jsr166y
  • Docs for jsr166z

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...)

like image 410
ivan_ivanovich_ivanoff Avatar asked Apr 15 '09 22:04

ivan_ivanovich_ivanoff


People also ask

Does Java have concurrency?

The Java platform is designed from the ground up to support concurrent programming, with basic concurrency support in the Java programming language and the Java class libraries. Since version 5.0, the Java platform has also included high-level concurrency APIs.

What is concurrency in Java with example?

Concurrency is the ability to run several or multi programs or applications in parallel. The backbone of Java concurrency is threads (a lightweight process, which has its own files and stacks and can access the shared data from other threads in the same process).

What is concurrency in Java Javatpoint?

Concurrency is the ability to run several programs or several parts of a program in parallel. If a time consuming task can be performed asynchronously or in parallel, this improve the throughput and the interactivity of the program. 2.


2 Answers

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
like image 90
Alex Miller Avatar answered Oct 06 '22 02:10

Alex Miller


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.

like image 27
Tom Hawtin - tackline Avatar answered Oct 06 '22 01:10

Tom Hawtin - tackline