|
Links - Concurrent Programming Java
Below is a directory of websites related to the concurrent programming
in Java.
Java Memory Model
William Pugh
Information about the
Java
Memory Model
including the problems with
Double-Checked
Locking
, maintained by
William
Pugh
, Associate Professor, Dept. of Computer Science, Univ. of Maryland.
William Pugh works with an expert group (
JSR
133
) on a revision of the Java memory model and thread specification.
There is also an
unofficial
guide for compiler writers
to implementing the new Java Memory Model
(JMM) specified by JSR-133 for those interested in the details.
Specification Request JSR133
Homepage of the
work
group
for the Java Memory Model and Thread Specification.
Java Concurrency Utilities
Doug Lea
Doug Lea
and others work
with an expert group (
JSR
166
) to specify concurrency utilities for the Java platform libraries.
The new package named
java.util.concurrent
will be released with
JDK 1.5. An
overview
of the new features contained in the new packages and a
prototype
implementation
are available on Doug Lea's website.
Specification Request JSR166
Homepage of the
work
group
for the concurrency utilities for the Java platform libraries.
Concurrency JSR-166 Interest Site
Doug Lea
maintains an
interest
site
related to the concurrency utilities. Among other information
it has links to further resources and you can join the mailing list.
Java 1.4 Backport of JSR 166
Dawid Kurzyniec
ported
the
java.util.concurrent
API, introduced in Java 5.0, back to
Java 1.4 (see
download
page
). The purpose of this library is to enable gradual transition
from Java 1.4 to 5.0: the library allows to develop concurrent applications
for Java 1.4 that should work with Java 5.0 simply by changing package
names. The backport is based on public-domain sources from the JSR
166 CVS repository, and the dl.util.concurrent package.
Articles
Patterns of Distributed and Concurrent Programming.
Countless
articles
on topics related to distributed and concurrent programming by
Douglas
Schmidt
, Associate Professor, Electrical and Computer Engineering,
Univ. of California, Irvine. Includes pattern such as
Active
Object
,
Monitor
,
Half-Sync/Half
Async
,
Asynchronous
Completion Token
,
Reactor
, and
Proactor
. Most code samples are in C++, but the patterns as such can easily be
translated to Java.
Concurrent Programming in Java
The
online supplement
of Doug Lea's book "Concurrent Programming in Java - Design principles
and patterns" has links to related reading and resources.
IBM Developer Works
A
series
of articles on multithreading. Below are listed some of the highlights.
Threading Lightly
Part
1
: Synchronization is not the enemy: When do we have to synchronize,
and how expensive is it really?
Part
2
: Reducing contention: Improve application performance by staying
out of your own way
Part
3
: Sometimes it is best not to share: Exploiting ThreadLocal to enhance
scalability
A mini series by
Brian
Goetz
published in 2001 in his column "Java Theory and Practice" at
the IBM Developer Work site. An introductory discussion of best practice
techniques in concurrent programming.
Concurrent Collection in JDK 5.0
Part
1
: Concurrency made simple (sort of): An introduction to the util.concurrent
package
Part
2
: Concurrect Collections Classes: ConcurrentHapMap an CopyOnWriteArrayList
offer thread safety and improved scalability
Part
3
: Building a better HashMap: How ConcurrentHashMap offers higher concurrency
without compromising thread safety
A mini series by
Brian
Goetz
published in 2003 in his column "Java Theory and Practice" at
the IBM Developer Work site.
New Features in JDK 5.0
Part1
:
More flexible, scalable locking: New lock classes improve on synchronized
-- but don't count synchronized out just yet
Part
2
: Going atomic: The new atomic classes are the hidden gems of java.util.concurrent
Some articles by
Brian
Goetz
published in 2004 in his column "Java Theory and Practice" at
the IBM Developer Work site.
Fixing the Java Memory Model
Part
1
: What is the Java Memory Model, and how was it broken in the first
place?
Part
2
: How will the JMM change under JSR 133?
A mini series by
Brian
Goetz
published in 2004 in his column "Java Theory and Practice" at
the IBM Developer Work site. As the titles suggest, the series discusses
the Java memory model and how it was clarified in Java 5.0.
Acquire multiple locks in a fixed, global order to avoid deadlock
An
article
by Peter Haggar in 2000. It is an excerpt from this book "Practical
Java".
Thread pools and work queues: Thread pools help achieve optimum resource
utilization
An
article
by Brian Goetz published in 2002 in his column "Java Theory and Practice"
at the IBM Developer Work site.
Books
A
comparative
book review
was published at the JavaWorld website in 2003; it includes
some of the Java concurrency titles mentioned in the book list.
Go to
BOOKS
CONCURRENCY
for book recommendations on concurrent programming
in Java. Below are listed some of the highlights.
Java Concurrency in Practice
A book by Brian Goetz and Joseph Bowbeer released in February 2006.
Detailed and thorough coverage of multithreading issues in Java, including
all Java 5.0 novelties.
Concurrency : State Models & Java Programs
A book by Jeff Magee and Jeff Kramer released in 1999. It provides
a systematic and practical approach to designing, analyzing and implementing
concurrent programs. The examples are in Java, but the book provides
a sound theoretical background that is language independent.
Concurrent Programming in Java , 2nd Ed.: Design Principles and Patterns
A book by Doug Lea released in 1999. It is one of the best book about
concurrent programming in Java that is currently available.
Java Threads, 3rd Edition
A book by Scott Oaks and Henry Wong released in 2004. It covers all
aspect of concurrent programming Java including the JDK 5.0 concurrency
utilities.
More Links
University of Tel-Aviv
A
collection
of links
to articles on the subject of multithreading in Java maintained
by
Eran Yahav
, graduate
student of Computer Science, Univ. of Tel-Aviv.
|