6、共享模型之无锁

6.2 cas 与 volatile

前面看到的 AtomicInteger 的解决方法,内部并没有用锁来保护共享变量的线程安全。那么它是如何实现的呢?

volatile

为什么无锁比synchronize效率高

CAS特点

6.3 原子整数

6.4 原理引用

6.5 原子数组

  • AtomicIntegerArray
  • AtomicLongArray
  • AtomicReferenceArray

6.6 原子更新器

  • AtomicReferenceFieldUpdater // 修饰引用类型
  • AtomicIntegerFieldUpdater //修饰整形
  • AtomicLongFieldUpdater //修饰Long类型

利用字段更新器,可以针对对象的某个域(Field)进行原子操作,只能配合 volatile 修饰的字段使用,否则会出现 异常

6.7 原子累加器

p175-183

6.8 unsafe

概述

Unsafe 对象提供了非常底层的,操作内存、线程的方法,Unsafe 对象不能直接调用,只能通过反射获得

你可能感兴趣的:(Java多线程,java多线程)