Parent Directory
|
Revision Log
Revision 1.16 - (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.16 | This is the proposed final draft JSR166 specification. To check for |
14 : | further updates, or join a mailing list discussing JSR-166, go 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 |