线程
- 线程的启动
- 实现Runnab1e接口
- 继承Thread类
- 实现Callable接口
- 线程的状态
- 线程的方法
- 线程的优先级
- 守护线程
- 未捕获异常处理器

并发编程的问题
- 线程引入开销:上下文切换与内存同步
- 线程安全性(原子性+可见性)
- 死锁

线程间通信/线程同步 工具使用
- synchronized
- Lock
- volatile
- Atomic

Lock使用 深入
- 可重入锁 ReentrantLock
- Condition与wait¬ify区别
- await&signal
- 公平锁
- 读写锁 ReentrantReadWriteLock
- LockSupport(锁住的是线程,synchronized锁住的是对象)
- synchronized与Lock的区别
- 原子操作类使用

Java内存模型 线程同步工具原理
- JMM抽象结构
- 指令重排序
- 内存屏障
- happens-before(抽象概念,基于内存屏障)
- 顺序一致性
- volatile原理
- synchronized原理
- 原子操作原理
- 锁的比较
- 锁的优化
- 锁的分类
- 偏向锁(只有一个线程进入临界区)
- 轻量级锁(多个线程交替进入临界区)
- 重量级锁(多个线程同时进入临界区)
- CPU如何实现原子操作
- Java如何实现原子操作
- CAS在OpenJDK中的实现
本文详细探讨了Java并发编程的各种方面,包括线程的启动方式、线程状态、同步工具如synchronized和Lock,以及并发问题如死锁和线程安全性。深入分析了Java内存模型和并发工具类的原理,如AQS、ReentrantLock、Atomic类等,并介绍了并发集合和线程池的使用。此外,还分享了如何通过并发提升性能和面试题,帮助开发者提升并发编程能力。
最低0.47元/天 解锁文章

850

被折叠的 条评论
为什么被折叠?



