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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8