Parent Directory
|
Revision Log
Revision 1.18 - (view) (download) (as text)
| 1 : | tim | 1.1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| 2 : | <html> | ||
| 3 : | <head> | ||
| 4 : | dl | 1.12 | <title>JSR 166 Introduction.</title> |
| 5 : | tim | 1.1 | </head> |
| 6 : | |||
| 7 : | <body bgcolor="#ffffee" vlink="#0000aa" link="#cc0000"> | ||
| 8 : | dl | 1.12 | <h1>JSR 166 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.18 | This is the updated JSR166 specification. For further information, go |
| 14 : | to: <A | ||
| 15 : | dl | 1.9 | HREF="http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest"> |
| 16 : | dl | 1.14 | http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest</A>. |
| 17 : | dl | 1.7 | |
| 18 : | dl | 1.14 | <p><em>Note: The javadocs here includes some existing java.util |
| 19 : | Collection interfaces and classes that are not part of the JSR-166 | ||
| 20 : | spec, but are included because JSR-166 methods implement or inherit | ||
| 21 : | from their specifications.</em> | ||
| 22 : | dl | 1.9 | |
| 23 : | <p> JSR-166 introduces package <tt>java.util.concurrent</tt> | ||
| 24 : | containing utility classes commonly useful in concurrent | ||
| 25 : | programming. Like package <tt>java.util</tt>, it includes a few small | ||
| 26 : | dl | 1.16 | standardized extensible frameworks, as well as other classes that |
| 27 : | dl | 1.9 | provide useful functionality and are otherwise tedious or difficult to |
| 28 : | implement. | ||
| 29 : | |||
| 30 : | <p>JSR-166 focusses on breadth, providing critical functionality | ||
| 31 : | useful across a wide range of concurrent programming styles and | ||
| 32 : | applications, ranging from low-level atomic operations, to | ||
| 33 : | customizable locks and synchronization aids, to various concurrent | ||
| 34 : | data structures, to high-level execution agents including thread | ||
| 35 : | pools. This diversity reflects the range of contexts in which | ||
| 36 : | developers of concurrent programs have been found to require or desire | ||
| 37 : | support not previously available in J2SE, which also keeping the | ||
| 38 : | dl | 1.16 | resulting package small; providing only functionality that has been |
| 39 : | found to be worthwhile to standardize. | ||
| 40 : | dl | 1.9 | |
| 41 : | <p>Descriptions and brief motivations for the main components may be | ||
| 42 : | found in the associated package documentation. JSR-166 also includes | ||
| 43 : | a few changes and additions in packages outside of | ||
| 44 : | java.util.concurrent. Here are brief descriptions. | ||
| 45 : | tim | 1.1 | |
| 46 : | <h2>Queues</h2> | ||
| 47 : | |||
| 48 : | dl | 1.3 | A basic (nonblocking) {@link java.util.Queue} interface extending |
| 49 : | dl | 1.9 | {@link java.util.Collection} is introduced into |
| 50 : | <tt>java.util</tt>. Existing class {@link java.util.LinkedList} is | ||
| 51 : | adapted to support Queue, and a new non-thread-safe {@link | ||
| 52 : | java.util.PriorityQueue} is added. | ||
| 53 : | |||
| 54 : | <h2>Threads</h2> | ||
| 55 : | |||
| 56 : | dl | 1.13 | Three minor changes are introduced to the {@link java.lang.Thread} |
| 57 : | class: | ||
| 58 : | <ul> | ||
| 59 : | <li> It now allows per-thread installation of handlers for uncaught | ||
| 60 : | exceptions. Ths optionally disassociates handlers from ThreadGroups, | ||
| 61 : | which has proven to be too inflexible. (Note that the combination of | ||
| 62 : | features in JSR-166 make ThreadGroups even less likely to be used in | ||
| 63 : | most programs. Perhaps they will eventually be deprecated.) | ||
| 64 : | |||
| 65 : | <li> Access checks are no longer required when a Thread interrupts | ||
| 66 : | <em>itself</em>. The <tt>interrupt</tt> method is the only way to | ||
| 67 : | re-assert a thread's interruption status (and in the case of | ||
| 68 : | self-interruption has no other effect than this). The check here | ||
| 69 : | previously caused unjustifiable and uncontrollable failures when | ||
| 70 : | restricted code invoked library code that must reassert interruption | ||
| 71 : | to correctly propagate status when encountering some | ||
| 72 : | <tt>InterruptedExceptions</tt>. | ||
| 73 : | <li> The <tt>destroy</tt> method, which has never been implemented, | ||
| 74 : | has finally been deprecated. This is just a spec change, reflecting | ||
| 75 : | dl | 1.15 | the fact that that the reason it has never been implemented is that |
| 76 : | dl | 1.13 | it was undesirable and unworkable. |
| 77 : | </ul> | ||
| 78 : | dl | 1.9 | |
| 79 : | <h2>Timing</h2> | ||
| 80 : | |||
| 81 : | Method <tt>nanoTime</tt> is added to {@link java.lang.System}. It | ||
| 82 : | provides a high-precision timing facility that is distinct from and | ||
| 83 : | uncoordinated with <tt>System.currentTimeMillis</tt>. | ||
| 84 : | dl | 1.8 | |
| 85 : | <h2>Removing ThreadLocals</h2> | ||
| 86 : | |||
| 87 : | dl | 1.9 | The {@link java.lang.ThreadLocal} class now supports a means to remove |
| 88 : | a ThreadLocal, which is needed in some thread-pool and worker-thread | ||
| 89 : | dl | 1.2 | designs. |
| 90 : | dl | 1.9 | |
| 91 : | |||
| 92 : | tim | 1.1 | |
| 93 : | <hr> | ||
| 94 : | </body> | ||
| 95 : | </html> |
| Doug Lea | ViewVC Help |
| Powered by ViewVC 1.0.8 |