1
Elements of Concurrent Programming in Java 2
Contents 3
Motivation 4
Potential Problems 5
Concurrency Support in Java 6
Object as a Monitor 7
Thread Construction 8
Thread Construction - Example 9
Thread Construction - Example 10
Thread Creation 11
Thread Construction - Example 12
Thread Construction - Example 13
Thread Control Methods 14
Priorities and Scheduling 15
Synchronization 16
Waiting and Notification 17
Waiting and Notification 18
Safety 19
Fully Synchronized Objects 20
Synchronization - Example 21
Synchronization - Example 22
Contained Objects 23
Liveness 24
Instance Variable Analysis 25
Splitting Synchronization 26
Splitting Classes - Example 27
Splitting Classes - Example 28
Splitting Locks - Example 29
State Dependent Actions 30
Policies 31
Guarded Suspension 32
Guarded Suspension - Example 33
Balking 34
Balking - Example 35
Optimistic Control 36
Optimistic Control - Example 37
Design Issues 38
Final Remarks 39
Readings
Click outside pointer rectangle to move pointer
Click on Pointer to Hide
Click on Pointer + ALT to toggle message hiding
Click on Pointer + CNTL to abolish pointer
Click on Pointer + Shift to cycle families
Click outside + Alt is Change Image
Click outside + Control is Double Size
Click outside + Shift is Halve Size
Right Mouse Down on Pointer Toggles Index
Shift Right Mouse aligns top with scrolled Page While With Mouse Down on Current Pointer h hides This Message while m restores i Toggles Index Aligned with Page Top j Toggles Index Aligned with Scrolled View Top a Abolishes Pointer while CNTL-Click restores f cycles through pointer families c cycles through members of a family u increases Size Up and d decreases Down Mouse Up-Down between changes of Pointer to process new option