Java Concurrency in Practice 思维导图

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
思维导图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值