Java并发编程系列学习笔记一: 并发编程思维导图
此系列文章为跟随微信公众号”Java进阶架构师“ 何适 师兄的原创作品《Java并发编程系列》学习笔记,非原创文章,请悉知。
上图所示,为Java并发编程相关知识体系的思维导图,可以帮助我们在学习Java并发编程技术时作为指导,最终转化为自己的知识体系。
按照思维导图中的思路,该系列文章将按照以下内容一次展开:
-
并发理论
- 并发编程需要面临的三个问题 (可见性、有序性、原子性);
- Java内存模型(JMM),理解掌握JMM是如何解决并发编程中的问题的;
-
Java并发关键字:
理解Java 中提供的并发编程相关的关键字,并学习各关键字分别解决并发问题中的哪些问题及原理是什么。
- Volatile
- synchronized
- final
-
并发基础:
- 并发编程领域中的概念: 死锁、饥饿和公平等
- 实现并发编程的基础工具: 线程的创建、运行、调度等
-
CAS原子操作
并发编程的核心:CAS操作的原理及在Java中的应用
-
Lock体系
- Lock比Synchronized的优势
- Lock的实现,AQS、LockSupport工具
- Lock的使用
-
并发工具
Java.util.concurrent包下的并发工具类及实现原理
- CountDownLatch 倒计时器
- CyclicBarrier 循环栅栏
- Semaphore 资源访问控制(信号量)
- Exchanger 数据交换
-
并发容器
java.util.concurrent包下的并发容器类
- ConcurrentHashMap
- CopyOnWriteArrayList
- ConcurrentLinkedQueue
- ThreadLocal
- BlockingQueue
-
线程池
分析线程池的执行流程及原理
- ThreadPoolExecutor
- ScheduledThreadPoolExecutor