[concurrency-interest] JDK9 concurrency preliminaries

Doug Lea dl at cs.oswego.edu
Wed Jan 8 15:25:00 EST 2014


It's time for tentatively proposing plans for JDK9. Here's a summary
of concurrency-related ones, some of which are already in their
earliest stages. All so far are preliminaries for anything
interestingly impacting java.util.concurrent, so are in the form of
OpenJDK "Java Enhancement Proposals" (JEP) that should soon emerge on
openjdk lists.

1. JMM Revisions

I submitted a JEP for updating and extending the JMM. The goals are to
update/fix formalisms and also extend coverage so that we can rigorously
spec things we've been adding.  We have an impressive set of
academics, researchers, and engineers tentatively signed up to
contribute.

2. JVM support

A second JEP covers per-release JVM support that j.u.c components can
use to improve performance and functionality: NUMA utilities, more
efficient memory polling, and two-variable compareAndSet (2CAS) --
directly implemented on some platforms, and efficiently emulated on
others.

3. Language support

A third JEP will cover a way to get rid of the need for Unsafe for
CASing fields, ordered/fenced access, etc. The time seems right to get
just enough syntax support to solve problems that we've never
otherwise found a good solution for over the years. At the moment, I
think the most likely possibility will allow access to operations
using ".volatile". for example:

     class Usage {
         volatile int count;
         int incrementCount() {
             return count.volatile.incrementAndGet();
         }
     }

There's more from there. A proposal (by others) for some sort of Value
Types seems to be a sure thing.  This will be a big help in dealing
with locality in parallel code (among other things).

And soon enough (but not all that soon), new java.util.concurrent
stuff. No firm plans yet, but providing more consistent support
for Async programming is near the top of the list.


-Doug


More information about the Concurrency-interest mailing list