java锁

重入锁、读写锁、悲观锁和乐观锁、CAS无锁、自旋锁、AQS算法

轻量级(Lock手动开启与释放,比较灵活)与重量级(synchronized自动开启与释放) 可重入性(递归锁)spa

CAS算法的过程是这样:它包含三个参数CAS(V,E,N): V表示要更新的变量,E表示预期值,N表示新值。仅当V值等于E值时,才会将V的值设为N,若是V值和E值不一样,则说明已经有其余线程作了更新,则当前线程什么都不作。最后,CAS返回当前V的真实值。线程

乐观锁:递归

update table set x=x+1, version=version+1 where id=#{id} and version=#{version};io

CAS锁与乐观锁性质同样,及比较在交换或比较在更新table

相关文章
相关标签/搜索