Skip to main content

Concurrent and Distributed Computing in Java

Concurrent and Distributed Computing in Java

Vijay K. Garg

ISBN: 978-0-471-72126-0 January 2005 Wiley-IEEE Press 336 Pages




Concurrent and Distributed Computing in Java addresses fundamental concepts in concurrent computing with Java examples. The book consists of two parts. The first part deals with techniques for programming in shared-memory based systems. The book covers concepts in Java such as threads, synchronized methods, waits, and notify to expose students to basic concepts for multi-threaded programming. It also includes algorithms for mutual exclusion, consensus, atomic objects, and wait-free data structures.
The second part of the book deals with programming in a message-passing system. This part covers resource allocation problems, logical clocks, global property detection, leader election, message ordering, agreement algorithms, checkpointing, and message logging. Primarily a textbook for upper-level undergraduates and graduate students, this thorough treatment will also be of interest to professional programmers.
List of Figures.


1. Introduction.

2. Mutual Exclusion Problem.

3. Synchronization Primitives.

4. Consistency Conditions.

5. Wait-Free Synchronization.

6. Distributed Programming.

7. Models and Clocks.

8. Resource Allocation.

9. Global Snapshot.

10. Global Properties.

11. Detecting Termination and Deadlocks.

12. Message Ordering.

13. Leader Election.

14. Synchronizers.

15. Agreement.

16. Transactions.

17. Recovery.

18. Self-Stabilization.

Appendix: Various Utility Classes.



"…a detailed yet readable introduction to concurrency and distributed computing." (Computing, April 9, 2004)

"...well-written and accurate...a good book for anyone who'd like hands-on training in the concepts of concurrent and distributed systems." (IEEE Distributed Systems Online, November 2004)