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
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
相关文章推荐
- JAVA实操:[1]数组习题
- Struts2 自定义下拉框Tag标签
- Java基础:Day02笔记内容 (常量、注释、变量)
- java中常量池的理解
- Java基础:Day01笔记内容 (概述、JDK的下载及安装)
- 使用maven开发spring项目报ClassNotFoundException异常
- 关于如何在eclipse中部署服务遇到的一些问题和解决。
- JAVA JDK 1.6 API中文版.CHM打开chm提示,“ 已取消到该网页的导航”
- Think in Java反刍笔记(3)---对象是什么(3)
- java的HashMap遍历输出
- java多线程之Semaphore信号量详解
- java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式
- java类加载机制
- maven-腾讯SDK(QQ)接口java引入pom配置
- Java中删除文件、删除目录及目录下所有文件
- Spring中数据库事务配置后不起作用
- Java堆外内存之突破JVM枷锁
- java导出csv用excel打开后数字不用科学计数法显示
- spring 入门小结2 ——配置属性
- spring 学习小结 1