[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.17 - (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.17 This is the final JSR166 specification submitted to JCP. 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.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