java锁

原创
2018/09/27 16:44
阅读数 22

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

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

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};

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

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部