Concurrent Programming in Java™: Design Principles and Pattern, 2/E
Doug Lea

ISBN-10: 0201310090
ISBN-13: 9780201310092

Publisher: Prentice Hall
Copyright: 2000
Format: Paper; 432 pp
Published: 10/25/1999

Suggested retail price: $64.99
Buy from myPearsonStore

  • 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.



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.



In this second edition, you will find thoroughly updated coverage of the Javao 2 platform and new or expanded coverage of:

  • Memory model
  • Cancellation
  • Portable parallel programming
  • Utility classes for concurrency control

The Java platform provides a broad and powerful set of APIs, tools, and technologies. One of its most powerful capabilities is the built-in support for threads. This makes concurrent programming an attractive yet challenging option for programmers using the Java programming language.

This book shows readers how to use the Java platform's threading model more precisely by helping them to understand the patterns and tradeoffs associated with concurrent programming.

You will learn how to initiate, control, and coordinate concurrent activities using the class java.lang.Thread, the keywords synchronized and volatile, and the methods wait, notify, and notifyAll. In addition, you will find detailed coverage of all aspects of concurrent programming, including such topics as confinement and synchronization, deadlocks and conflicts, state-dependent action control, asynchronous message passing and control flow, coordinated interaction, and structuring web-based and computational services.

The book targets intermediate to advanced programmers interested in mastering the complexities of concurrent programming. Taking a design pattern approach, the book offers standard design techniques for creating and implementing components that solve common concurrent programming challenges. The numerous code examples throughout help clarify the subtleties of the concurrent programming concepts discussed.



0201310090B04062001

View a Sample Chapter PDF:

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

This title is a member of the Java Series, which also contains the titles below . You can also visit the Java Series page.

  • 0201310090Concurrent Programming in Java™: Design Principles and Pattern, 2/E
    Lea
    © 2000 | Prentice Hall | Paper; 432 pages | Instock
    ISBN-10: 0201310090 | ISBN-13: 9780201310092
    Brief Description | Buy from myPearsonStore

  • 0321205219Designing Web Services with the J2EE™ 1.4 Platform: JAX-RPC, SOAP, and XML Technologies
    Singh, Brydon, Murray, Ramachandran, Violleau & Stearns
    © 2004 | Prentice Hall | Paper Bound w/CD-ROM; 464 pages | Instock
    ISBN-10: 0321205219 | ISBN-13: 9780321205216
    Buy from myPearsonStore

  • 0321356683Effective Java, 2/E
    Bloch
    © 2008 | Prentice Hall | Paper; 384 pages | Instock
    ISBN-10: 0321356683 | ISBN-13: 9780321356680
    Buy from myPearsonStore

  • 0201310058Effective Java™ Programming Language Guide
    Bloch
    © 2001 | Prentice Hall | Paper; 272 pages | Instock
    ISBN-10: 0201310058 | ISBN-13: 9780201310054
    Brief Description | Buy from myPearsonStore

  • 0137150024Effective Java, Safari, 2/E
    Bloch
    © 2008 | Prentice Hall | On-line Supplement; 384 pages | Instock
    ISBN-10: 0137150024 | ISBN-13: 9780137150021
    URL: http://www.safari.informit.com


  • 0201787911Inside Java™ 2 Platform Security: Architecture, API Design, and Implementation, 2/E
    Gong, Ellison & Dageforde
    © 2003 | Prentice Hall | Paper; 384 pages | Instock
    ISBN-10: 0201787911 | ISBN-13: 9780201787917
    Brief Description | Buy from myPearsonStore

  • 0201716232The Java™ Class Libraries Poster, Enterprise Edition, v1.2
    Chan & Lee
    © 2000 | Prentice Hall | Paper; 2 pages | Instock
    ISBN-10: 0201716232 | ISBN-13: 9780201716238
    Buy from myPearsonStore

  • 0321213823The Java™ Class Libraries Poster, Java 2 Platform Enterprise Edition, Version 1.4, 2/E
    Chan & Lee
    © 2003 | Prentice Hall | Paper; 2 pages | Instock
    ISBN-10: 0321213823 | ISBN-13: 9780321213822
    Buy from myPearsonStore

  • 0201768100Java™ Developers Almanac 1.4, Volume 2, The: Examples and Quick Reference, 4/E
    Chan
    © 2003 | Prentice Hall | Paper; 1040 pages | Out of Stock
    ISBN-10: 0201768100 | ISBN-13: 9780201768107
    Brief Description

  • 0321490290The Java™ EE 5 Tutorial, 3/E
    Jendrock, Ball, Carson, Evans, Fordin & Haase
    © 2007 | Prentice Hall | Paper; 1360 pages | Instock
    ISBN-10: 0321490290 | ISBN-13: 9780321490292
    Buy from myPearsonStore

  • 0201310082Java™ Language Specification, 2/E
    Gosling, Joy, Steele & Bracha
    © 2000 | Prentice Hall | Paper; 544 pages | Out of Stock
    ISBN-10: 0201310082 | ISBN-13: 9780201310085


  • 0201784726Java™ Message Service API Tutorial and Reference: Messaging for the J2EE™ Platform
    Hapner, Burridge, Sharma, Fialli & Haase
    © 2002 | Prentice Hall | Paper; 544 pages | Estimated Availability: 02/26/2002
    ISBN-10: 0201784726 | ISBN-13: 9780201784725
    Buy from myPearsonStore

  • 0201703939Java™ Tutorial, The: A Short Course on the Basics, 3/E
    Campione, Walrath & Huml
    © 2001 | Prentice Hall | Paper Bound w/CD-ROM; 592 pages | Out of Stock
    ISBN-10: 0201703939 | ISBN-13: 9780201703931
    Brief Description

  • 0321463420Kicking Butt with MIDP and MSA: Creating Great Mobile Applications
    Knudsen
    © 2008 | Prentice Hall | Paper; 432 pages | Instock
    ISBN-10: 0321463420 | ISBN-13: 9780321463425
    Buy from myPearsonStore

  • 0201711028Programming Open Service Gateways with Java Embedded Server™ Technology
    Chen & Gong
    © 2002 | Prentice Hall | Paper; 480 pages | Instock
    ISBN-10: 0201711028 | ISBN-13: 9780201711028
    Buy from myPearsonStore

  • 0321197984Programming Wireless Devices with the Java™2 Platform, Micro Edition, 2/E
    Riggs, Taivalsaari, Van Peursem, Huopaniemi, Patel & Uotila
    © 2003 | Prentice Hall | Paper; 464 pages | Instock
    ISBN-10: 0321197984 | ISBN-13: 9780321197986
    Buy from myPearsonStore

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, browse our available packages below, or contact your Pearson Higher Education representative to create your own package.



Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions