Concurrent Programming: The Java Programming Language
- Length: 272 pages
- Edition: 1
- Language: English
- Publisher: Oxford University Press
- Publication Date: 1998-03-26
- ISBN-10: 0195113152
- ISBN-13: 9780195113150
- Sales Rank: #3142046 (See Top 100 Books)
The popularity of the Internet has led to rapidly expanding interest in client-server programming by all kinds of businesses and organizations. Many client and server applications benefit from their design as object-oriented programs with multiple threads of control. An object-oriented language with built-in threads, Java is ideal for concurrent programming and developing multi-threaded applications. Demand for programmers skilled in object-oriented design and concurrency will only grow in the future, making concurrent programming and the Java programming language increasingly important to programming students and professionals.
Designed for students and professionals, Concurrent Programming: The Java Programming Language provides a practical, demonstrative introduction to the issues and concepts in concurrent programming, operating systems, the client-server model, and multiple threads. It features numerous Java example programs as stand-alone applications rather than as simple applets, showing readers how to utilize the Java programming language to write programs that use semaphores, monitors, message passing, remote procedure calls, and the rendezvous for thread synchronization and communication. Each example program includes output from one or more sample runs. Multithreading issues such as race conditions, critical sections, mutual exclusion, and condition synchronization are covered. Several thread communication tools used extensively in client server programming–message passing, the rendezvous, and remote procedure calls–are also described. An algorithm animation package, written in Java, is used in several of the example programs. The book concludes with a brief introduction to parallel processing with Java.
Concurrent Programming: The Java Programming Language is suitable for a concurrent programming course or as a supplement in an operating systems class. Professional programmers will also find the presentation accessible. All source code for the book is available by anonymous ftp from ftp.mcs.drexel.edu and from the World Wide Web at http://www.mcs.drexel.edu/~shartley/ConcProgJava/index.html.
Table of Contents
- Concurrency
- Design Forces
- Java Overview
- Designing Objects for Concurrency
- Immutability
- Locking
- State Dependence
- Containment
- Splitting Objects and Locks
- Introducing Concurrency into Applications
- Autonomous Loops
- Oneway Messages
- Interactive Messages
- Cancellation
- Concurrent Application Architectures
- Push Flow Systems
- Parallel Execution
- Layered Services
- Using Concurrency Libraries
- Implementing Library Classes
- Documenting Concurrency