
Concurrent Programming in Java (TM)
Design Principles and Pattern
Doug Lea(Author)
Addison Wesley (Publisher)
2nd Edition
Published on 7. December 1999
Book
Paperback/Softback
432 pages
978-0-201-31009-2 (ISBN)
Shipment within 3-4 weeks
Description
One of Java's most powerful capabilities is its built-in support for concurrent programming, a design technique in which multiple concurrent activities-threads take place inside a single Java program. Thread programming enables developers to design applications that are more responsive to user demands, faster, and more easily controlled.
This book offers comprehensive coverage of this vital aspect of the Java language. The book is completely up-to-date with the new thread model that is now incorporated into the most recent version of the Java Virtual Machine. All Java programmers interested in doing concurrent programming must understand these new concepts. The book approaches the topic from a design pattern point of view. It introduces and summarizes Java's concurrency support, shows readers how to initiate, control, and coordinate concurrent activities, and offers numerous recipe-like techniques for designing and implementing Java structures that solve common concurrent programming challenges. Specifically, the book presents important strategies for avoiding the inconsistencies that can crop up in multi-threaded programs, addresses the concept of "liveness"-how to ensure that all threads in use are kept active simultaneously, examines state-dependent action, and demonstrates effective methods for handling user requests in a multi-threaded environment.
This book offers comprehensive coverage of this vital aspect of the Java language. The book is completely up-to-date with the new thread model that is now incorporated into the most recent version of the Java Virtual Machine. All Java programmers interested in doing concurrent programming must understand these new concepts. The book approaches the topic from a design pattern point of view. It introduces and summarizes Java's concurrency support, shows readers how to initiate, control, and coordinate concurrent activities, and offers numerous recipe-like techniques for designing and implementing Java structures that solve common concurrent programming challenges. Specifically, the book presents important strategies for avoiding the inconsistencies that can crop up in multi-threaded programs, addresses the concept of "liveness"-how to ensure that all threads in use are kept active simultaneously, examines state-dependent action, and demonstrates effective methods for handling user requests in a multi-threaded environment.
More details
Series
Edition
2nd edition
Language
English
Place of publication
New Jersey
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Height: 235 mm
Width: 189 mm
Thickness: 15 mm
Weight
680 gr
ISBN-13
978-0-201-31009-2 (9780201310092)
Schweitzer Classification
Other editions
New editions
Book
3rd Edition
Addison Wesley
€41.68
The article will not be published
Previous edition
Book
11/1996
Addison Wesley
€40.84
Article exhausted; check different version
Person
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.
Content
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
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