[cvs] / jsr166 / src / main / intro.html Repository:
ViewVC logotype

Annotation of /jsr166/src/main/intro.html

Parent Directory Parent Directory | Revision Log Revision Log


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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8