首页 > 编程语言 > 详细

java涉及到的各种锁

时间:2019-09-23 16:41:01      阅读:109      评论:0      收藏:0      [点我收藏+]

悲观锁:简而言之,两个线程抢占一份资源时。当一个线程拿到资源时。加锁,阻塞,其他线程禁止访问、java sycnosized就是悲观锁

乐观锁:简而言之,两个线程抢占一份资源时,不会对资源加锁,只有在提交事务时会根据version判断,其他线程有没有修改数据。

通常是对数据库加上version版本标志。提交数据时,将提交的数据与之前的版本对比,如果大于则更新。如果等于或小于,则驳回

CAS:无锁实现并发,自旋。将内存中的将要被修改的数据与预期的值进行比较,如果这两个值相等就修改值为新值,否则就不做操作  

公平锁和非公平锁 :ReentrantLock 不做解释

独占锁:每次只有一个线程能访问这个资源。悲观锁也是独占锁

共享锁:ReadWriteLock

 

java涉及到的各种锁

原文:https://www.cnblogs.com/jayjie/p/11571941.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!