Parent Directory
|
Revision Log
Revision 1.10 - (view) (download) (as text)
| 1 : | tim | 1.1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| 2 : | <html> | ||
| 3 : | <head> | ||
| 4 : | dl | 1.9 | <title>JSR 166 Community Review Draft Introduction.</title> |
| 5 : | tim | 1.1 | </head> |
| 6 : | |||
| 7 : | <body bgcolor="#ffffee" vlink="#0000aa" link="#cc0000"> | ||
| 8 : | tim | 1.10 | <h1>JSR 166 Community Review Draft Introduction.</h1> |
| 9 : | tim | 1.1 | |
| 10 : | by <a href="http://gee.cs.oswego.edu/dl">Doug Lea</a> | ||
| 11 : | <p> | ||
| 12 : | |||
| 13 : | dl | 1.9 | To chack for updates to this draft, access a preliminary prototype |
| 14 : | release of main functionality, or join a mailing list discussing this | ||
| 15 : | JSR, go to: <A | ||
| 16 : | HREF="http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest"> | ||
| 17 : | http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest</A> | ||
| 18 : | . | ||
| 19 : | tim | 1.1 | <p> |
| 20 : | dl | 1.7 | |
| 21 : | dl | 1.9 | <em> <b>Disclaimer</b>. The prototype implementation is experimental |
| 22 : | code developed as part of JCP JSR-166 is made available to the | ||
| 23 : | developer community for use as-is. It is not a supported product. Use | ||
| 24 : | it at your own risk. The specification, language and implementation | ||
| 25 : | are subject to change as a result of your feedback. Because these | ||
| 26 : | features have not yet been approved for addition to the Java language, | ||
| 27 : | there is no schedule for their inclusion in a product. </em> | ||
| 28 : | |||
| 29 : | <p> <em> <b>Disclaimer</b>. This draft specification was produced | ||
| 30 : | using JDK1.4 tools plus some preprocessing. The resulting javadocs do | ||
| 31 : | not yet correctly render other planned JDK1.5 constructs on which | ||
| 32 : | JSR-166 relies, most notably the use of generic types. We are | ||
| 33 : | releasing this version now (before the availability of JDK1.5-based | ||
| 34 : | tools) because, even though they are misformatted and sometimes lack | ||
| 35 : | proper cross-referencing, they otherwise convey the intended | ||
| 36 : | specifications. </em> | ||
| 37 : | |||
| 38 : | <p> JSR-166 introduces package <tt>java.util.concurrent</tt> | ||
| 39 : | containing utility classes commonly useful in concurrent | ||
| 40 : | programming. Like package <tt>java.util</tt>, it includes a few small | ||
| 41 : | standardized extensible frameworks, as well as some classes that | ||
| 42 : | provide useful functionality and are otherwise tedious or difficult to | ||
| 43 : | implement. | ||
| 44 : | |||
| 45 : | <p>JSR-166 focusses on breadth, providing critical functionality | ||
| 46 : | useful across a wide range of concurrent programming styles and | ||
| 47 : | applications, ranging from low-level atomic operations, to | ||
| 48 : | customizable locks and synchronization aids, to various concurrent | ||
| 49 : | data structures, to high-level execution agents including thread | ||
| 50 : | pools. This diversity reflects the range of contexts in which | ||
| 51 : | developers of concurrent programs have been found to require or desire | ||
| 52 : | support not previously available in J2SE, which also keeping the | ||
| 53 : | resulting package small; providing only that minimial support for | ||
| 54 : | which it makes sense to standardize. | ||
| 55 : | |||
| 56 : | <p>Descriptions and brief motivations for the main components may be | ||
| 57 : | found in the associated package documentation. JSR-166 also includes | ||
| 58 : | a few changes and additions in packages outside of | ||
| 59 : | java.util.concurrent. Here are brief descriptions. | ||
| 60 : | tim | 1.1 | |
| 61 : | <h2>Queues</h2> | ||
| 62 : | |||
| 63 : | dl | 1.3 | A basic (nonblocking) {@link java.util.Queue} interface extending |
| 64 : | dl | 1.9 | {@link java.util.Collection} is introduced into |
| 65 : | <tt>java.util</tt>. Existing class {@link java.util.LinkedList} is | ||
| 66 : | adapted to support Queue, and a new non-thread-safe {@link | ||
| 67 : | java.util.PriorityQueue} is added. | ||
| 68 : | |||
| 69 : | <h2>Threads</h2> | ||
| 70 : | |||
| 71 : | Two minor changes are introduced to the {@link java.lang.Thread} | ||
| 72 : | class: It now allows per-thread installation of handlers for uncaught | ||
| 73 : | exceptions. Ths optionally disassociates handlers from ThreadGroups, | ||
| 74 : | which has proven to be too inflexible. (Note that the combination of | ||
| 75 : | features in JSR-166 make ThreadGroups even less likely to be used in | ||
| 76 : | most programs. Perhaps they will eventually be deprecated.) Secondly, | ||
| 77 : | access checks are no longer required when a Thread interrupts | ||
| 78 : | <em>itself</em>. The <tt>interrupt</tt> method is the only way to | ||
| 79 : | re-assert a thread's interruption status (and in the case of | ||
| 80 : | self-interruption has no other effect than this). The check here | ||
| 81 : | previously caused unjustifiable and uncontrollable failures when | ||
| 82 : | restricted code invoked library code that must reassert interruption | ||
| 83 : | to correctly propagate status when encountering some | ||
| 84 : | <tt>InterruptedExceptions</tt>. | ||
| 85 : | |||
| 86 : | <h2>Timing</h2> | ||
| 87 : | |||
| 88 : | Method <tt>nanoTime</tt> is added to {@link java.lang.System}. It | ||
| 89 : | provides a high-precision timing facility that is distinct from and | ||
| 90 : | uncoordinated with <tt>System.currentTimeMillis</tt>. | ||
| 91 : | dl | 1.8 | |
| 92 : | <h2>Removing ThreadLocals</h2> | ||
| 93 : | |||
| 94 : | dl | 1.9 | The {@link java.lang.ThreadLocal} class now supports a means to remove |
| 95 : | a ThreadLocal, which is needed in some thread-pool and worker-thread | ||
| 96 : | dl | 1.2 | designs. |
| 97 : | dl | 1.9 | |
| 98 : | |||
| 99 : | tim | 1.1 | |
| 100 : | <hr> | ||
| 101 : | <address><A HREF="http://gee.cs.oswego.edu/dl">Doug Lea</A></address> | ||
| 102 : | </body> | ||
| 103 : | </html> |
| Doug Lea | ViewVC Help |
| Powered by ViewVC 1.0.8 |