ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/intro.html
(Generate patch)

Comparing jsr166/src/main/intro.html (file contents):
Revision 1.7 by dl, Tue Jul 8 00:46:24 2003 UTC vs.
Revision 1.13 by dl, Sun Aug 24 23:31:23 2003 UTC

# Line 1 | Line 1
1   <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2   <html>
3   <head>
4 <   <title>JSR 166 Snapshot Introduction.</title>
4 >   <title>JSR 166 Introduction.</title>
5    </head>
6  
7    <body bgcolor="#ffffee" vlink="#0000aa" link="#cc0000">
8 <  <h1>JSR 166 Snapshot Introduction.</h1>
8 >  <h1>JSR 166 Introduction.</h1>
9  
10    by <a href="http://gee.cs.oswego.edu/dl">Doug Lea</a>
11    <p>
12  
13 < To join a mailing list discussing this JSR, go to:
14 < <A HREF="http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest"> http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest</A> .
15 <
16 < <p>
17 < <em>
18 < Disclaimer - This prototype is experimental code developed as part of
19 < JCP JSR166 and made available to the developer community for use
20 < as-is. It is not a supported product. Use it at your own risk. The
21 < specification, language and implementation are subject to change as a
22 < result of your feedback. Because these features have not yet been
23 < approved for addition to the Java language, there is no schedule for
24 < their inclusion in a product.
25 < </em>
26 <
27 < <p> JSR166 introduces package <tt>java.util.concurrent</tt> containing utility
28 < classes commonly useful in concurrent programming. Like package
29 < java.util, it includes a few small standardized extensible frameworks,
30 < as well as some classes that provide useful functionality and are
31 < otherwise tedious or difficult to implement.  Descriptions of the main
32 < components may be found in the associated package documentation.
33 <
34 < <p> JSR166 also includes a few changes and additions in packages
35 < outside of java.util.concurrent: java.lang, to address uncaught
36 < exceptions, and java.util to better integrate with collections.  Here
37 < are brief descriptions.
13 > 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 > HREF="http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest">
18 > http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest</A>
19 > .  <p>
20 >
21 > <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  
61   <h2>Queues</h2>
62  
63   A basic (nonblocking) {@link java.util.Queue} interface extending
64 < java.util.Collection is introduced into java.util. Existing class
65 < java.util.LinkedList is adapted to support Queue, and a new
66 < non-thread-safe {@link java.util.PriorityQueue} is added.
67 <
68 < <h2>Uncaught Exception Handlers</h2>
69 <
70 < The java.lang.Thread class is modified to allow per-thread
71 < installation of handlers for uncaught exceptions. Ths optionally
72 < disassociates these handlers from ThreadGroups, which has proven to be
73 < too inflexible in many multithreaded programs. (Note that the
74 < combination of features in JSR166 make ThreadGroups even less likely
75 < to be used in most programs. Perhaps they will eventually be
76 < deprecated.)
64 > {@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 > 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 >
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 >
100 > <h2>Removing ThreadLocals</h2>
101  
102 < <p> Additionally, java.lang.ThreadLocal now supports a means to remove
102 > 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   designs.
105  
106 +
107 +
108    <hr>
109    <address><A HREF="http://gee.cs.oswego.edu/dl">Doug Lea</A></address>
110   </body>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines