Concurrent and Distributed Computing in Java
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.
What people are saying - Write a review
We haven't found any reviews in the usual places.
List of Figures
2 Mutual Exclusion Problem
3 Synchronization Primitives
4 Consistency Conditions
5 WaitFree Synchronization
6 Distributed Programming
7 Models and Clocks
12 Message Ordering
13 Leader Election
A Various Utility Classes
Other editions - View all
application args assume atomic boolean bottom machine buffer busy wait called causal ordering channel Chapter checkpoint concurrent consensus coordinator critical section datapacket deadlock deﬁned deﬁnition destId detection dining philosopher problem distributed algorithm distributed computation distributed system enter the critical execution failure false FIFO ﬁnished ﬁrst fork global snapshot graph happened-before haveToken identiﬁer implementation import java initComm initial int src Integer interface Lamport’s linearizable lock logical clock matrix clock method monitor myId myld myValue myWait neighbors node null numProc object operation ordering of messages parent predicate println problem processor protocol public class public int public static void public synchronized void public void pulse queue reader receiving a message request requires satisﬁes semaphores sequential consistency server shown in Figure snapshot algorithm socket spanning tree SRSW String tag synchronized void handleMsg(Msg thread timestamp token total order transaction true variable vector clock wait write