[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.13 - (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.12 This is an updated version of the specification submitted for JCP
14 :     Community Draft review. To check for further updates, access a
15 :     preliminary prototype release of main functionality, or join a mailing
16 :     list discussing this JSR, go to: <A
17 : dl 1.9 HREF="http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest">
18 :     http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest</A>
19 : dl 1.12 . <p>
20 : dl 1.7
21 : dl 1.9 <em> <b>Disclaimer</b>. The prototype implementation is experimental
22 :     code developed as part of JCP JSR-166 is made available to the
23 :     developer community for use as-is. It is not a supported product. Use
24 :     it at your own risk. The specification, language and implementation
25 :     are subject to change as a result of your feedback. Because these
26 :     features have not yet been approved for addition to the Java language,
27 :     there is no schedule for their inclusion in a product. </em>
28 :    
29 :     <p> <em> <b>Disclaimer</b>. This draft specification was produced
30 :     using JDK1.4 tools plus some preprocessing. The resulting javadocs do
31 :     not yet correctly render other planned JDK1.5 constructs on which
32 :     JSR-166 relies, most notably the use of generic types. We are
33 :     releasing this version now (before the availability of JDK1.5-based
34 :     tools) because, even though they are misformatted and sometimes lack
35 :     proper cross-referencing, they otherwise convey the intended
36 :     specifications. </em>
37 :    
38 :     <p> JSR-166 introduces package <tt>java.util.concurrent</tt>
39 :     containing utility classes commonly useful in concurrent
40 :     programming. Like package <tt>java.util</tt>, it includes a few small
41 :     standardized extensible frameworks, as well as some classes that
42 :     provide useful functionality and are otherwise tedious or difficult to
43 :     implement.
44 :    
45 :     <p>JSR-166 focusses on breadth, providing critical functionality
46 :     useful across a wide range of concurrent programming styles and
47 :     applications, ranging from low-level atomic operations, to
48 :     customizable locks and synchronization aids, to various concurrent
49 :     data structures, to high-level execution agents including thread
50 :     pools. This diversity reflects the range of contexts in which
51 :     developers of concurrent programs have been found to require or desire
52 :     support not previously available in J2SE, which also keeping the
53 :     resulting package small; providing only that minimial support for
54 :     which it makes sense to standardize.
55 :    
56 :     <p>Descriptions and brief motivations for the main components may be
57 :     found in the associated package documentation. JSR-166 also includes
58 :     a few changes and additions in packages outside of
59 :     java.util.concurrent. Here are brief descriptions.
60 : tim 1.1
61 :     <h2>Queues</h2>
62 :    
63 : dl 1.3 A basic (nonblocking) {@link java.util.Queue} interface extending
64 : dl 1.9 {@link java.util.Collection} is introduced into
65 :     <tt>java.util</tt>. Existing class {@link java.util.LinkedList} is
66 :     adapted to support Queue, and a new non-thread-safe {@link
67 :     java.util.PriorityQueue} is added.
68 :    
69 :     <h2>Threads</h2>
70 :    
71 : dl 1.13 Three minor changes are introduced to the {@link java.lang.Thread}
72 :     class:
73 :     <ul>
74 :     <li> It now allows per-thread installation of handlers for uncaught
75 :     exceptions. Ths optionally disassociates handlers from ThreadGroups,
76 :     which has proven to be too inflexible. (Note that the combination of
77 :     features in JSR-166 make ThreadGroups even less likely to be used in
78 :     most programs. Perhaps they will eventually be deprecated.)
79 :    
80 :     <li> Access checks are no longer required when a Thread interrupts
81 :     <em>itself</em>. The <tt>interrupt</tt> method is the only way to
82 :     re-assert a thread's interruption status (and in the case of
83 :     self-interruption has no other effect than this). The check here
84 :     previously caused unjustifiable and uncontrollable failures when
85 :     restricted code invoked library code that must reassert interruption
86 :     to correctly propagate status when encountering some
87 :     <tt>InterruptedExceptions</tt>.
88 :     <li> The <tt>destroy</tt> method, which has never been implemented,
89 :     has finally been deprecated. This is just a spec change, reflecting
90 :     the fact that that the reason it has never been implmented is that
91 :     it was undesirable and unworkable.
92 :     </ul>
93 : dl 1.9
94 :     <h2>Timing</h2>
95 :    
96 :     Method <tt>nanoTime</tt> is added to {@link java.lang.System}. It
97 :     provides a high-precision timing facility that is distinct from and
98 :     uncoordinated with <tt>System.currentTimeMillis</tt>.
99 : dl 1.8
100 :     <h2>Removing ThreadLocals</h2>
101 :    
102 : dl 1.9 The {@link java.lang.ThreadLocal} class now supports a means to remove
103 :     a ThreadLocal, which is needed in some thread-pool and worker-thread
104 : dl 1.2 designs.
105 : dl 1.9
106 :    
107 : tim 1.1
108 :     <hr>
109 :     <address><A HREF="http://gee.cs.oswego.edu/dl">Doug Lea</A></address>
110 :     </body>
111 :     </html>

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8