[concurrency-interest] Deque and skip list integration

Doug Lea dl@cs.oswego.edu
Wed, 29 Dec 2004 07:58:27 -0500

As a sign that we believe that APIs and code are stable, we've placed
the interfaces and implementations of deques and skip lists (that
we've long had as RFEs) into our main reference repository:

APIs:   http://gee.cs.oswego.edu/dl/concurrent/dist/docs/index.html
Jar:    http://gee.cs.oswego.edu/dl/concurrent/dist/jsr166.jar
Source: http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/
TCK:    http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/test/tck/

We're not sure when these will be integrated into early-access Mustang
builds. Probably within a month or so.  As usual, you can use these
now in 1.5.0 by running java with -Xbootclasspath/p:jsr166.jar .  (You
may need to precede "jsr166.jar" with its full file path.) Also, we
will keep the "jsr166x" versions of classes around so you can always
run them that way.

Now would be a very good time to take a look at these and tell us if
you have any complaints or suggestions. We rely on you, the members of
the concurrency-interest list, to help ensure that APIs are sensible,
performance is good, and so on.  We would also be thrilled to receive
code reviews.  The new and updated classes are:

  java.util interfaces
  java.util.concurrent interfaces
  java.util implementations:
    LinkedList  (updated to support Deque)
    TreeMap     (updated to support NavigableMap)
    TreeSet     (updated to support NavigableSet)
    Collections (updated with new adaptor/view methods)
  java.util.concurrent implementations
    Concurrent  (a new class to hold static factories and adaptors)

Sources for updated LinkedList, TreeMap, TreeSet, and Collections are
under Sun license. All others are under our usual public domain

Aside: The fact that so many things had to be changed or introduced
merely to support deques and skip lists explains why we postponed this
to after 1.5.0.

We are still contemplating and/or working on a few other minor
RFEs, for example additional TimeUnit values.