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.
Index. 0201310090T04062001
Doug Lea is one of the foremost experts on object-oriented technology and software reuse. He has been doing collaborative research with Sun Labs for more than five years. Lea is Professor of Computer Science at SUNY Oswego, Co-director of the Software Engineering Lab at the New York Center for Advanced Technology in Computer Applications, and Adjunct Professor of Electrical and Computer Engineering at Syracuse University. In addition, he co-authored the book, Object-Oriented System Development (Addison-Wesley, 1993). He received his B.A., M.A., and Ph.D. from the University of New Hampshire.
Ask a Question About this Product More... |