您的位置:首页 > 编程语言 > Java开发

Java Concurrency in Practice 思维导图

2016-02-25 10:28 573 查看
JCIP

Fundamentals

1-Introduction

threads are the easiest way to tap the computing power of multiprocessor systems

1.1-a brief history of concurrency

Resource utilization

Fairness

Convenience

1.2-Benefits of threads

1.3-Risk of threads

1.4-Threads are everywhere

2-Thread Safety

2.1-What is thread safety

2.2-Atomicity

2.3-Locking

2.4-Guarding state with locks

2.5-Liveness and performance

3-Sharing Objects

3.1-Visibility

3.2-Publication and escape

3.3-Thread confinement

3.4-Immutability

3.5-Safe publication

4-Composing Objects

4.1-Designing a thread-safe class

4.2-Instance confinement

4.3-Delegating thread safety

4.4-Adding functionality to existing thread-safe classes

4.5-Documenting synchronization policies

5-Building Blocks

5.1. Synchronized Collections

5.2. Concurrent Collections

5.3. Blocking Queues and the Producer-consumer Pattern

5.4. Blocking and Interruptible Methods

5.5. Synchronizers

5.6. Building an Efficient, Scalable Result Cache

Structuring Concurrent Applications

6-Task Execution

6.1-Executing tasks in threads

6.2-The Executor framework

6.3-Finding exploitable parallelism

7-Cancelletion and Shutdown

7.1-Task cancellation

7.2-Stopping a thread-based service

7.3-JVM shutdown

8-Applying Thread Pools

8.4-Impliciting couplings between tasks and execution policies

8.5-Sizing thread pools

8.6-Configuring ThreadPoolExecutor

8.7-Extending ThreadPoolExecutor

8.8-Parallelizing recursive algorithms

9-GUI Applications

9.1-Why are GUIs single-threaded

9.2-Short-running GUI tasks

9.3-Long-running GUI tasks

9.4-Shared data models

9.5-Other forms of single-threaded subsystems

Liveness,Performance,and Testing

10-Avoiding Liveness Hazards

10.1-Deadlock

10.2-Avoiding and diagnosing deadlocks

10.3-Other liveness hazards

11-Performance and Scalability

11.1Thinking about performance

11.2- Amdahl’s law

11.3-Costs introduced by threads

11.4-Reducing lock contention

11.5-Example:comparing Map performance

11.6-Reducing context switch overhead

12-Testing Concurrent Programs

12.1-Testing for correctness

12.2-Testing for performance

12.3-Avoiding performance testing pitfalls

12.4-Complementary testing approaches

Advanced Topics

13-Exploit Locks

13.1-Lock and ReentrantLock

13.2-Performance considerations

13.3-Fairness

13.4-Choosing between synchronized and ReentrantLock

13.5-Read-Write Locks

14-Building Custom Synchronizers

14.1-Managing state dependence

14.2-Using condition queues

14.3-Explicit condition objects

14.4-Anatomy of a synchronizer

14.5-AbstractQueuedSynchronizer

14.6-AQS in java.util.concurrent synchronizer classes

15-Atomic Variables and Nonblocking Synchronization

15.1-Disadvantages of locking

15.2-Hardware support for concurrency

15.3-Atomic variable classes

15.4-Nonblocking algorithms

16-The Java Memory Model

16.1-What is a memory model,and why would I want one?

16.2-Publication

16.3-Initialization safety

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: