(无锁优化、自旋、乐观锁)

Compare And Set

cas(V,E,New)

if V==E

V=New

otherwise try again or fail

CPU原语支持(原子性)

ABA问题

业务不需要处理的,就不用处理;需要处理的,就增加version

VarHandle(JDK9)

(1, 普通属性也可以进行原子操作,2,比反射快,直接操作二进制码)

ThreadLocal

set

Thread.currentThrea.map(threadLocal, object)

(设置到了当前线程的map中)

(线程专属变量,在spring声明式事务中,用于保证同一个事物内的数据库连接是同一个对象)

(在使用完后,必须删除掉(调用remove()方法))