最近,忙中偷闲研究了一下,jdk1.5以后引入的用于线程安全操作的原子类!
一、原子类存在位置
jdk提供的用于线程安全的包:java.util.concurrent.atomic,包中具体的内容如下:
主要提供了基本类型和数组的原子类操作
二、原子类的底层实现原理
原子类的实现主要依赖于sun,misc中的Unsafe类,实现对虚拟机底层中主内存和线程独有内存的操作,使用原子类主要是使线程自身所拥有的内存副本失效,使得所有线程共同操作 虚拟机的主存,通过unsafe中的乐观锁机制,实现线程安全的控制!主要提到unsafe中的cas即CompareAndSwap原理
三、原子类主要提供的方法
所有的原子类主要提供的方法基本都差不多,如下图示例:
主要提供了一个无参构造,一个有参构造、一个静态块(用于加载Unsafe资源)、几个get、几个set、几个update方法等等