274x Filetype PDF File size 0.07 MB Source: weblibrary.apeiron-uni.euË8080
Java Concurrency in Practice
By Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes,
Doug Lea
...............................................
Publisher: Addison Wesley Professional
Pub Date: May 09, 2006
Print ISBN-10: 0-321-34960-1
Print ISBN-13: 978-0-321-34960-6
Pages: 384
UTable of ContentsU | UIndexU
UCopyrightU
UAdvance Praise for Java Concurrency in PracticeU
UListingsU
UPrefaceU
UChapter 1. IntroductionU
USection 1.1. A (Very) Brief History of ConcurrencyU
USection 1.2. Benefits of ThreadsU
USection 1.3. Risks of ThreadsU
USection 1.4. Threads are EverywhereU
UPart I: FundamentalsU
UChapter 2. Thread SafetyU
USection 2.1. What is Thread Safety?U
USection 2.2. AtomicityU
USection 2.3. LockingU
USection 2.4. Guarding State with LocksU
USection 2.5. Liveness and PerformanceU
UChapter 3. Sharing ObjectsU
USection 3.1. VisibilityU
USection 3.2. Publication and EscapeU
USection 3.3. Thread ConfinementU
USection 3.4. ImmutabilityU
USection 3.5. Safe PublicationU
UChapter 4. Composing ObjectsU
USection 4.1. Designing a Thread-safe ClassU
USection 4.2. Instance ConfinementU
USection 4.3. Delegating Thread SafetyU
USection 4.4. Adding Functionality to Existing Thread-safe ClassesU
USection 4.5. Documenting Synchronization PoliciesU
UChapter 5. Building BlocksU
USection 5.1. Synchronized CollectionsU
USection 5.2. Concurrent CollectionsU
USection 5.3. Blocking Queues and the Producer-consumer PatternU
USection 5.4. Blocking and Interruptible MethodsU
USection 5.5. SynchronizersU
USection 5.6. Building an Efficient, Scalable Result CacheU
USummary of Part IU
UPart II: Structuring Concurrent ApplicationsU
UChapter 6. Task ExecutionU
USection 6.1. Executing Tasks in ThreadsU
USection 6.2. The Executor FrameworkU
USection 6.3. Finding Exploitable ParallelismU
USummaryU
UChapter 7. Cancellation and ShutdownU
USection 7.1. Task CancellationU
USection 7.2. Stopping a Thread-based ServiceU
USection 7.3. Handling Abnormal Thread TerminationU
USection 7.4. JVM ShutdownU
USummaryU
UChapter 8. Applying Thread PoolsU
USection 8.1. Implicit Couplings Between Tasks and Execution PoliciesU
USection 8.2. Sizing Thread PoolsU
USection 8.3. Configuring ThreadPoolExecutorU
USection 8.4. Extending ThreadPoolExecutorU
USection 8.5. Parallelizing Recursive AlgorithmsU
USummaryU
UChapter 9. GUI ApplicationsU
USection 9.1. Why are GUIs Single-threaded?U
USection 9.2. Short-running GUI TasksU
USection 9.3. Long-running GUI TasksU
USection 9.4. Shared Data ModelsU
USection 9.5. Other Forms of Single-threaded SubsystemsU
USummaryU
UPart III: Liveness, Performance, and TestingU
UChapter 10. Avoiding Liveness HazardsU
USection 10.1. DeadlockU
USection 10.2. Avoiding and Diagnosing DeadlocksU
USection 10.3. Other Liveness HazardsU
USummaryU
UChapter 11. Performance and ScalabilityU
USection 11.1. Thinking about PerformanceU
USection 11.2. Amdahl's LawU
USection 11.3. Costs Introduced by ThreadsU
USection 11.4. Reducing Lock ContentionU
USection 11.5. Example: Comparing Map PerformanceU
USection 11.6. Reducing Context Switch OverheadU
USummaryU
UChapter 12. Testing Concurrent ProgramsU
USection 12.1. Testing for CorrectnessU
USection 12.2. Testing for PerformanceU
USection 12.3. Avoiding Performance Testing PitfallsU
USection 12.4. Complementary Testing ApproachesU
USummaryU
UPart IV: Advanced TopicsU
UChapter 13. Explicit LocksU
USection 13.1. Lock and ReentrantLockU
USection 13.2. Performance ConsiderationsU
USection 13.3. FairnessU
USection 13.4. Choosing Between Synchronized and ReentrantLockU
USection 13.5. Read-write LocksU
USummaryU
UChapter 14. Building Custom SynchronizersU
USection 14.1. Managing State DependenceU
USection 14.2. Using Condition QueuesU
USection 14.3. Explicit Condition ObjectsU
USection 14.4. Anatomy of a SynchronizerU
USection 14.5. AbstractQueuedSynchronizerU
USection 14.6. AQS in Java.util.concurrent Synchronizer ClassesU
USummaryU
UChapter 15. Atomic Variables and Nonblocking SynchronizationU
USection 15.1. Disadvantages of LockingU
USection 15.2. Hardware Support for ConcurrencyU
USection 15.3. Atomic Variable ClassesU
USection 15.4. Nonblocking AlgorithmsU
USummaryU
UChapter 16. The Java Memory ModelU
USection 16.1. What is a Memory Model, and Why would I Want One?U
USection 16.2. PublicationU
USection 16.3. Initialization SafetyU
USummaryU
UAppendix A. Annotations for ConcurrencyU
USection A.1. Class AnnotationsU
USection A.2. Field and Method AnnotationsU
UBibliographyU
UIndexU
no reviews yet
Please Login to review.