--- jsr166/src/main/intro.html 2003/08/09 20:00:07 1.12 +++ jsr166/src/main/intro.html 2016/03/25 05:38:25 1.25 @@ -10,48 +10,28 @@ by Doug Lea

-This is an updated version of the specification submitted for JCP -Community Draft review. To check for further updates, access a -preliminary prototype release of main functionality, or join a mailing -list discussing this JSR, go to: -http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest -.

+http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest. - Disclaimer. The prototype implementation is experimental -code developed as part of JCP JSR-166 is made available to the -developer community for use as-is. It is not a supported product. Use -it at your own risk. The specification, language and implementation -are subject to change as a result of your feedback. Because these -features have not yet been approved for addition to the Java language, -there is no schedule for their inclusion in a product. - -

Disclaimer. This draft specification was produced -using JDK1.4 tools plus some preprocessing. The resulting javadocs do -not yet correctly render other planned JDK1.5 constructs on which -JSR-166 relies, most notably the use of generic types. We are -releasing this version now (before the availability of JDK1.5-based -tools) because, even though they are misformatted and sometimes lack -proper cross-referencing, they otherwise convey the intended -specifications. - -

JSR-166 introduces package java.util.concurrent +

JSR-166 introduces package java.util.concurrent containing utility classes commonly useful in concurrent -programming. Like package java.util, it includes a few small -standardized extensible frameworks, as well as some classes that +programming. Like package java.util, it includes a few small +standardized extensible frameworks, as well as other classes that provide useful functionality and are otherwise tedious or difficult to implement. -

JSR-166 focusses on breadth, providing critical functionality +

JSR-166 focuses on breadth, providing critical functionality useful across a wide range of concurrent programming styles and applications, ranging from low-level atomic operations, to customizable locks and synchronization aids, to various concurrent data structures, to high-level execution agents including thread pools. This diversity reflects the range of contexts in which developers of concurrent programs have been found to require or desire -support not previously available in J2SE, which also keeping the -resulting package small; providing only that minimial support for -which it makes sense to standardize. +support not previously available in J2SE, while also keeping the +resulting package small; providing only functionality that has been +found to be worthwhile to standardize.

Descriptions and brief motivations for the main components may be found in the associated package documentation. JSR-166 also includes @@ -62,32 +42,40 @@ A basic (nonblocking) {@link java.util.Queue} interface extending {@link java.util.Collection} is introduced into -java.util. Existing class {@link java.util.LinkedList} is +java.util. Existing class {@link java.util.LinkedList} is adapted to support Queue, and a new non-thread-safe {@link java.util.PriorityQueue} is added.

Threads

-Two minor changes are introduced to the {@link java.lang.Thread} -class: It now allows per-thread installation of handlers for uncaught -exceptions. Ths optionally disassociates handlers from ThreadGroups, -which has proven to be too inflexible. (Note that the combination of -features in JSR-166 make ThreadGroups even less likely to be used in -most programs. Perhaps they will eventually be deprecated.) Secondly, -access checks are no longer required when a Thread interrupts -itself. The interrupt method is the only way to -re-assert a thread's interruption status (and in the case of -self-interruption has no other effect than this). The check here -previously caused unjustifiable and uncontrollable failures when -restricted code invoked library code that must reassert interruption -to correctly propagate status when encountering some -InterruptedExceptions. +Three minor changes are introduced to the {@link java.lang.Thread} +class: +

Timing

-Method nanoTime is added to {@link java.lang.System}. It +Method nanoTime is added to {@link java.lang.System}. It provides a high-precision timing facility that is distinct from and -uncoordinated with System.currentTimeMillis. +uncoordinated with System.currentTimeMillis.

Removing ThreadLocals

@@ -98,6 +86,5 @@
-
Doug Lea