- Java Concurrency and Threads

[ Home | Whats New | Recommended Books | Search | Subscribe ]
[ TP | DB | Java | JavaBeans | C++ | Design-Pattern | CORBA | Server | Script | SCM | Dev-Mags | Net-News | WebDev | Net | XML ]

Get the FREE SwTech e-mail newsletter :
Support this site by buying one of our Recommended Books

Search the SwTech.com site:   

Java : Java Concurrency and Threads

See Also:
>Java Network Programming
>Java-based Transaction Programming

* Using threads to make an application more dynamic
* Book: Concurrent Programming in Java - Design principles and patterns
by Doug Lea. Advanced programming using Java and design patterns. One of the main uses and requirements for concurrency is in the handling of networking and communications while still keeping an app responsive to user input.
This is what real programming is about - remember, if it isn't concurrent, it's SLOW!
Buy it TODAY from Amazon Worldwide/U.S.A. or U.K.
* Online supplement to 'Concurrent Programming in Java'
An online supplement to the book 'Concurrent Programming in Java : Design Principles and Patterns' by Doug Lea.
* Book: Concurrent Programming using Java
by Steve Hartley. In case you can't wait until February 1998 for the book, some notes on using Java for concurrent programming. From a pure Computing Science / Academic background, but that will ensure your code is sound!
* Syncronization of Java Threads using Rendezvous
A description of Rendezvous, a mechanism for imposing an ordering on events in an arbitrary number of concurrent threads.
* Summary of Java Concurrency Constructs
A nice summary by Doug Lea of the various concurrency features of the Java language. Inlcudes Thread Construction and Control, Priorities, Scheduling, Synchronization, and Waiting and Notification.
* Using solaris threads: Java Runtime Experiences
A paper by Pavani Diwanji describing the limitations encountered in native Solaris threads while using them for the Java runtime environment. Provides a useful background on the way Java threads really work, and the impact of the implementation issues on current and future applications.
* The MethodThread class
Steve MacDonald's MethodThread class which allows any public method in any public class to be executed as a separate thread using the reflection capability of Java 1.1. It also allows these methods to return values when the thread has finished executing.
* Cancellable Activities
Some notes by Doug Lee, based on a recent series of discussions in the Advanced-Java mailing list, on the complexities and practical implementation of ways to cancel thread actions.
* Implementing a multi-threaded HTTP server in Java
For server applications to be useful, they should have the ability to serve multiple clients simultaneously. However, clients' requests may overload the server's machine and the server may crash. This article explains how to write safe multithreaded server applications. The development of an HTTP server is used as an illustration. The article also explains some related security and performance issues.
* Java 1.2 Thread methods
A document from JavaSoft outlining why they are deprecating the Thread.stop, Thread.suspend and Thread.resume methods in the forthcoming release of Java 1.2.
* Programming with threads in Java 1.2
Scott Oaks discusses the changes to the Thread class that are being introduced for Java 1.2. Looking at the three methods being deprecated in 1.2 for which there is no obvious replacement, he shows how to avoid these deprecated methods now by re-examining the approaches to programming with threads, and on the way how to produce more robust Java program.
* Threads and Swing
A discussion of the single-thread nature of the the JFC/Swing GUI toolkit, and the implications for programs using Swing widgets. Discusses a SwingWorker class and invokeLater Thread method to ensure code is run in the event-dispatching thread.
* Effective Use of Threads
A detailed article from the developer.com Online Reference Library on the multi-threading facilities in Java, how they work and how to use them.
* Concurrency and Synchronization
A follow up article from the developer.com Online Reference Library on how to use the synchronization facilities in Java for properly writing multi-threaded programs.
* Echidna - A free multiprocess system in Java
Echidna is a class library which allows multiple 'processes' to run inside a single Virtual Machine. Implemented entirely in Java, it lets you let all your objects live inside a single virtual machine, rather than spawning off a separate VM for each 'application', resulting in a much smaller memory-footprint and much faster startup-times for your code.
Notable features include:
* Some Java Goodies
Some nice little Java goodies by Kevin Kelly, including a thread responsiveness monitor and a memory monitor.
* Java Threading Model Issues
A note by Tom Cargill to identify some parts of the specification of the Java threading model that are incomplete or inconsistent, and try to assist in the preparation of an improved specification.
* dl.util.concurrent - Doug Lee's concurrency utility package
A set of Java classes with source code that provide standardized, efficient versions of utility classes commonly encountered in concurrent Java programming.
* Working with the blocking queue
An article describing the basic technique for multi-threaded programming called a blocking queue, and how to implement it in Java.
* The Life Cycle of a Thread
The various stages involved in the life cycle of a Thread, and the code necessary to move it from one to the other.
* Write high-performance RMI servers and Swing clients
Learn how to supercharge your RMI servers by reducing the use of thread synchronization and implementing asynchronous callbacks via a configurable thread pool. JavaWorld's Enterprise Java columnist Andy Krumel also demonstrates how to implement an efficient asynchronous logging facility and how to handle RMI callbacks to a Swing-based client application.
* Design for thread safety
This article from JavaWorld's Design Techniques column gives you design guidelines that pertain to thread safety. It provides a background on the concept of thread safety and shows several examples of objects that are and are not thread-safe, including two illustrative applets. In addition, the article offers guidelines to help you decide when thread safety is appropriate and how best to achieve it.
* Java Toolbox: Programming Java threads in the real world - Part 2
This JavaWorld article discusses the perils that can arise when you approach multithreading in a naive way. It assumes familiarity with the basic thread-related parts of Java: the synchronized keyword and monitors, wait(), notify(), the basics of using the Thread class, and so forth. The article focuses on the more advanced problems encountered when programming Java threads in the real world - specifically covering race conditions in depth. It also discusses various deadlock scenarios, which are related to race conditions but are much harder to find and debug!
* Concurrency in Swing Text
Concurrency in GUIs has often been a subject of controversy. Swing, while not entirely thread-safe, offers some support for concurrency in key areas. This Swing Connection article by JFC/Swing text package author Timothy Prinzing examines the support of concurrency provided by the text package, and then shows how to perform text layout asynchronous to the GUI event thread in an interactive display.
* Book: Concurrent Programming in Java - Second Edition
The long awaited second edition of Doug Lea's book on advanced programming using Java threads. Not for the beginner, but vital for any serious Java programmer.
Buy it TODAY from Amazon Worldwide/U.S.A. or U.K.
* Communicating Sequential Processes for Java (JCSP)
JCSP provides a complete library for building complex functionality through layered networks of communicating processes. It conforms to the CSP model of cummunicating systems so that twenty years of theory, tools and practical experience can be brought to bear in the support of Java multi-threaded applications.
Processes interact solely via CSP synchronising primitives, such as channels, CALL channels, timers, crews, barriers, buckets or other well-defined modes of access to shared passive objects. Processes do not invoke each other's methods. Processes may be combined to run in sequence or parallel. Processes may be combined to wait passively on a number of alternative events, with one of them trigered into action only by the external generation of that event. Such collections of events may be serviced either fairly (guaranteeing no starvation of one event by the repeated arrival of its siblings), by any user-defined priority or in an arbitrary manner. JCSP is an alternative to the built-in monitor model for Java threads.

DevLynx - Developer Links

Add your own Developer Links:

You can now suggest your own DevLynx to include on this page.
Search the Software Technologies site:   

Home Copyright © 1996-2006 Software Technologies Ltd.
All rights reserved. All trademarks acknowledged. E & O E.
Privacy Policy.
Designed for
Microsoft Internet Explorer
Designed for
Netscape Navigator
webmaster@SwTech.com http://www.SwTech.com/java/threads/