Subcategories 2

Related categories 1

The "Double-Checked Locking is Broken" Declaration
Details on the reasons - some very subtle - why double-checked locking cannot be relied upon to be safe. Signed by a number of experts, including Sun engineers.
Concurrent Programming with Java Lab
Lab. manual by Astha Ekadiyanto.
Seminar: Concurrent Programming in Java
A course covering all aspects of multi-thread programming in Java from plain synchronization over Java 5.0 concurrency utilities to memory model issues.
Java Concurrency / Multithreading - Tutorial
This article describes how to do concurrent programming with Java and the Java 5.0 concurrency collection. Covers threads, the executor framework (thread pools), futures, callables, deadlocks and the fork-join framework. (July 21, 2009)
Java Threads
An article covering Java thread basics. (July 13, 2009)
Java Concurrency with Thread Gates
The thread gate pattern is an effective tool for managing thread concurrency, but not many developers know about it. Introduces the concept of thread gates, and then shows how to implement them in a multithreaded prime-number generator. (March 05, 2009)
Multithreading in Java
The article discusses how to pull off multithreading in Java. It is excerpted from chapter 10 of the book Java Demystified, written by Jim Keogh. (August 04, 2005)
Achieve Strong Performance With Threads, Part 4
Focuses on thread groups, volatility, thread-local variables, timers, and the ThreadDeath class. Also describes how various thread concepts combine to finalize objects. (August 01, 2002)
Achieve Strong Performance With Threads, Part 3
Explains how priority relates to thread scheduling and how to use the wait/notify mechanism to coordinate the activities of multiple threads. (July 01, 2002)
Achieve Strong Performance With Threads, Part 2
Explains synchronization, Java's synchronization mechanism, and two problems that arise when developers fail to use that mechanism correctly. (June 01, 2002)
Achieve Strong Performance With Threads, Part 1
Gives an introduction to threads and explores the Thread class and runnables. (May 01, 2002)
Singletons with Needles and Thread
Presents two approaches to creating thread-safe singletons. (January 25, 2002)
Can ThreadLocal Solve the Double-checked Locking Problem?
Explains how to fix the double-checked locking idiom by using thread-local variables and takes a look at its performance. (November 01, 2001)
Threading Lightly, Part 3: Exploiting ThreadLocal to Enhance Scalability
Examines ThreadLocal and offers tips for exploiting its power. By Brian Goetz. (October 16, 2001)
Avoid Synchronization Deadlocks
Explains how to apply consistent rules for acquiring multiple locks simultaneously, to reduce the likelihood of synchronization deadlocks. (October 01, 2001)
Threading Lightly, Part 2: Reducing Contention
Explains why contended synchronization is a problem and then explores several techniques for reducing contention, and hence improving scalability. (September 05, 2001)
Threading Lightly, Part 1: Synchronization is not the Enemy
Takes a look at the semantics and the performance penalty of Java's synchronized keyword. By Brian Goetz. (July 17, 2001)
Can Double-Checked Locking be Fixed?
In this article, Brian Goetz looks at some of the commonly proposed fixes and shows how each of them fails to render the DCL idiom thread-safe under the Java Memory Model. (May 01, 2001)
Double-Checked Locking: Clever, but Broken
Though many Java books and articles recommend double-checked locking, unfortunately, it is not guaranteed to work in Java. (February 01, 2001)
Warning! Threading in a Multiprocessor World
Many authors advocate the double-checked locking idiom to access a Singleton object in an intuitively thread-safe way. Unfortunately, for counterintuitive reasons, double-checked locking doesn't work in Java. (February 01, 2001)
Programming Java Threads in the Real World, Part 9
Discussion of two more architectural solutions to threading problems: a synchronous dispatcher (or 'reactor') and an asynchronous dispatcher (or 'active object'). (June 01, 1999)
Programming Java Threads in the Real World, Part 8
Discusses architectural solutions to threading problems. Takes a look at threads from the perspective of an object-oriented designer, and at how to implement threads in an object-oriented environment, focusing on the implementation of asynchronous methods. (May 01, 1999)
Programming Java Threads in the Real World, Part 7
Reader/writer locks let multiple threads safely access a shared resource in an efficient way. (April 01, 1999)
Programming Java Threads in the Real World, Part 6
How to implement the Observer pattern (used by AWT/Swing for its event model) in a multithreaded environment. (March 01, 1999)
Programming Java Threads in the Real World, Part 5
Timers let you perform fixed-interval operations, such as animation refreshes. (February 01, 1999)
Programming Java Threads in the Real World, Part 4
A condition variable adds to wait the ability to not wait when the condition you're waiting for has already taken place; and a counting semaphore lets you control a pool of resources without sucking up machine cycles in polling loops. (December 01, 1998)
Programming Java Threads in the Real World, Part 3
Looks at how and why you might want to roll your own exclusion semaphores, and presents a lock manager that will help you safely acquire multiple semaphores. (November 01, 1998)
Programming Java Threads in the Real World, Part 2
Discusses the perils that can arise when you approach multithreading in a naive way. (October 01, 1998)
Programming Java Threads in the Real World, Part 1
Discusses the things you need to know to program threads in the real world. This article assumes you understand the language-level support for threads and focuses on the legion of problems that arise when you try to use these language features. (September 01, 1998)
Last update:
September 18, 2016 at 5:24:10 UTC
All Languages