目录
并发挑战
- 并发编程的挑战
- 并发基础概述
- 如何设计解决并发问题
并发原理
- 硬件
- CPU
- JMM级别
- 并发机制的JMM原理
- 并发思想
- 线程机制
- 线程安全性
- 线程安全
- 安全发布对象
- 线程协作、调度
- 死锁
并发实现
- 线程池
- JUC
- 并发Start
- 各种工具的场景与应用
- 简单的并发类介绍
- Java实现(分两个)
- Java 并发类库的使用
- 解决一些实际场景的问题
- 实战案例
并发案例
- 高并发
并发工具
总结
类设计
- Java并发关注的主要是由于数据共享而导致的不一致问题。可变状态是至关重要的:
- 同步只是保证共享数据在争用时的正确性的手段。
- 所有的并发问题都可以归结为如何协调对并发状态的访问。可变状态越少,越容易确保线程安全性。
- 有些程序出现数据不一致的问题并不重要(个人猜想),要根据业务场景判断。
- 封装有助于管理复杂性。
- 将数据封装在对象中,更易于维持不变性条件,将同步机制封装在对象中,更易于遵循同步策略。
- 执行复合操作期间要持有锁、当保护同一个不变性条件中的所有变量时要持有锁。
项目设计
- 并发的设计在于设计任务,即Runnable、Callable、Future:
- 查看JUC-Executor。
参考
-