Apple hyping java...

Ned Konz ned at bike-nomad.com
Mon Apr 1 00:45:08 UTC 2002


On Sunday 31 March 2002 04:34 pm, Andreas Raab wrote:
> > 6) wouldn't hurt a bit to go look at Doug Lea's work with Java.
> >    I regard most of what he did as "Java needed this, but they left
> >    it out, so here is something that does what you need and works".
>
> Since I haven't looked at it, can you elaborate a bit on what he did?

Doug wrote an excellent book called "Concurrent programming in Java: Design 
principles and patterns", published by Addison-Wesley. ISBN=0201310090

Table of Contents:

1. Concurrent Object-Oriented Programming. 
 Using Concurrency Constructs. 
 A Particle Applet. 
Thread Mechanics. 
Further Readings. 

 Objects and Concurrency. 
 Concurrency. 
Concurrent Execution Constructs. 
Concurrency and OO Programming. 
Object Models and Mappings. 
Further Readings. 

 Design Forces. 
 Safety. 
Liveness. 
Performance. 
Reusability. 
Further Readings. 

 Before/After Patterns. 
 Layering. 
Adapters. 
Subclassing. 
Method Adapters. 
Further Readings. 


 2. Exclusion. 
 Immutability. 
 Applications. 
Construction. 

 Synchronization. 
 Mechanics. 
Fully Synchronized Objects. 
Traversal. 
Statics and Singletons. 
Deadlock. 
Resource Ordering. 
The Java Memory Model. 
Further Readings. 

 Confinement. 
 Confinement Across Methods. 
Confinement Within Threads. 
Confinement Within Objects. 
Confinement Within Groups. 
Further Readings. 

 Structuring and Refactoring Classes. 
 Reducing Synchronization. 
Splitting Synchronization. 
Read-Only Adapters. 
Copy-on-Write. 
Open Containers. 
Further Readings. 

 Using Lock Utilities. 
 Mutexes. 
Read-Write Locks. 
Further Readings. 


 3. State Dependence. 
 Dealing with Failure. 
 Exceptions. 
Cancellation. 
Further Readings. 

 Guarded Methods. 
 Guarded Suspension. 
Monitor Mechanics. 
Guarded Waits. 
Notifications. 
Timed Waits. 
Busy Waits. 

 Structuring and Refactoring Classes. 
 Tracking State. 
Conflict Sets. 
Subclassing. 
Confinement and Nested Monitors. 
Further Readings. 

 Using Concurrency Control Utilities. 
 Semaphores. 
Latches. 
Exchangers. 
Condition Variables. 
Further Readings. 

 Joint Actions. 
 General Solutions. 
Decoupling Observers. 
Further Readings. 

 Transactions. 
 Transaction Protocols. 
Transaction Participants. 
Creating Transactions. 
Vetoable Changes. 
Further Readings. 

 Implementing Utilities. 
 Acquire-Release Protocols. 
Delegated Actions. 
Specific Notifications. 
Further Readings. 


 4. Creating Threads. 
 Oneway Messages. 
 Message Formats. 
Open Calls. 
Thread-Per-Message. 
Worker Threads. 
Polling and Event-Driven IO. 
Further Readings. 

 Composing Oneway Messages. 
 Composition. 
Assembly Line. 
Further Readings. 

 Services in Threads. 
 Completion Callbacks. 
Joining Threads. 
Futures. 
Scheduling Services. 
Further Readings. 

 Parallel Decomposition. 
 Fork/Join. 
Computation Trees. 
Barriers. 
Further Readings. 

 Active Objects. 
 CSP. 
Further Readings. 
-- 
Ned Konz
currently: Stanwood, WA
email:     ned at bike-nomad.com
homepage:  http://bike-nomad.com



More information about the Squeak-dev mailing list