(无锁优化、自旋、乐观锁)
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()方法))