[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.24 - (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 : jsr166 1.24 java classes (for example <code>java.lang.Thread</code>) that were changed
20 : dl 1.20 as part of the JSR166 spec. On the other hand, the javadocs here do
21 : dl 1.19 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 : jsr166 1.24 <p>JSR-166 introduces package <code>java.util.concurrent</code>
27 : dl 1.9 containing utility classes commonly useful in concurrent
28 : jsr166 1.24 programming. Like package <code>java.util</code>, 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 : jsr166 1.22 <p>JSR-166 focuses on breadth, providing critical functionality
34 : dl 1.9 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 : jsr166 1.24 <code>java.util</code>. Existing class {@link java.util.LinkedList} is
54 : dl 1.9 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 : jsr166 1.22 exceptions. This optionally disassociates handlers from ThreadGroups,
64 : dl 1.13 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 : jsr166 1.24 <em>itself</em>. The <code>interrupt</code> method is the only way to
70 : dl 1.13 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 : jsr166 1.24 <code>InterruptedExceptions</code>.
76 :     <li> The <code>destroy</code> method, which has never been implemented,
77 : dl 1.13 has finally been deprecated. This is just a spec change, reflecting
78 : dl 1.23 the fact 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 : jsr166 1.24 Method <code>nanoTime</code> is added to {@link java.lang.System}. It
85 : dl 1.9 provides a high-precision timing facility that is distinct from and
86 : jsr166 1.24 uncoordinated with <code>System.currentTimeMillis</code>.
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