前言
总结了Vi的使用
- AtomicBoolean
- AtomicInteger
AtomicLong
AtomicIntegerArray :原子更新Integer数组
- AtomicLongArray
AtomicReferenceArray
AtomicReference :原子更新引用类型
- AtomicReferenceFieldUpdater : 源自更新引用类型里的字段
AtomicMarkableReference :源自更新带标记位的引用类型。
AtomicIntegerFieldUpdate :原子更新整形的字段更新器
- AtomicLongFieldUpdate :原子更新长整形字段的更新器
- AtomicStampedReference :使用版本号来区别变量,可以避免CAS可能出现的ABA问题
🖊
本章主要讲解Java的线程Thread,线程的6个状态,Daemon守护线程,线程的生存周期操作(构造、启动、中断、终止),以及线程的几种通信方式:volatile和synchronized提供的内存可见性保障,等待/通知机制wait/notify,管道流,Thread.join() 以及 ThreadLocal变量。
最后还示例了线程池、数据库连接池的简单实现,篇幅较大,暂时未补充,需要自己阅读书本。
本章主要通过Java的内存模型来讲解汇编代码的重排序现象,顺序一致性,happens-before原则,volatile内存语义和synchronized,final,锁,双重检查锁等在内存模型中的体现和原理表达。