锁
文章平均质量分 54
蛋焊工
搬砖小学生
展开
-
分布式锁和@Transactional注解一起使用锁失效问题(并不是真正的失效,只是读到数据有问题)
锁失效并不是真正的失效,只是读到数据,读取的数据库数据不是最新的。下面今行程序分析 @Override @Transactional public ReceiveH5ActivityPrizeResponse receive(ReceiveH5ActivityPrizeRequest request) { logger.info("getH5Acti...原创 2019-11-21 18:45:08 · 2333 阅读 · 5 评论 -
CAS与Synchronized的使用情景
CAS与Synchronized的使用情景1、对于资源竞争较少(线程冲突较轻)的情况,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态到内核态间的切换操作额外浪费消耗cpu资源;而CAS基于操作借助C来调用CPU底层指令实现的,不需要进入内核,不需要切换线程,操作自旋几率较少,因此可以获得更高的性能。 2、对于资源竞争严重(线程冲突严重)的情况,CAS自旋的概率会比较大,...原创 2018-08-01 16:26:53 · 1315 阅读 · 0 评论 -
高并发(3)之Synchronized的实现原理
synchronized实现原理分为两种类型:一种为同步代码块,锁定的当前对象,在java中每个对象都有一个监视器(monitor)(虚拟机规范中用的是管程一词),在这个monitor监视器中有两个monitor enter和monitor exit指令,并且这两个指令一 一对应的。如果有线程进入到monitorenter时,尝试获取monitor的所有权,进行判断monitor的进入数,如果...原创 2019-01-17 18:47:28 · 214 阅读 · 0 评论 -
Java多线程之间引发死锁问题(1)
死锁代码:import java.util.concurrent.CountDownLatch;public class DeadLock { public static String obj1 = "obj1";//资源1 public static String obj2 = "obj2";//资源2 public static void main(...原创 2019-01-24 11:17:50 · 314 阅读 · 0 评论 -
Java多线程之间引发死锁问题(2)
可以使用Semaphore信号量,记录拥有该资源线程的个数。public static final Semaphore semaphore1 = new Semaphore(1,false);//表示只能一个线程进入代码如下;import java.util.concurrent.CountDownLatch;import java.util.concurrent.Semaphor...原创 2019-01-24 11:31:38 · 210 阅读 · 0 评论 -
悲观锁(select...for update)与乐观锁(version)
悲观锁(Pessimistic Lock)悲观锁是基于数据库层面的锁, 就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block阻塞。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,写锁等,都是在做操作之前先上锁。一个典型的倚赖数据库的悲观锁调用:select * from style where id='1' f...原创 2017-11-09 11:36:39 · 3646 阅读 · 1 评论 -
高并发(2)之CAS(Compare and Swap)
CAS : compare and swap,比较和交换CAS就是有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。但是CAS仍然存在三大问题:ABA问题、自旋循环时间长开销大、只能保证一个共享变量的原子操作。CAS会调用JNI:Java Native Interface(JAVA本地调用),允许java调用其他...原创 2018-08-01 11:21:26 · 625 阅读 · 0 评论 -
实现分布式锁的三种方式
1、数据库的乐观锁(版本号机制)悲观锁与乐观锁2、基于Redis的分布式锁加锁public class RedisTool { private static final String LOCK_SUCCESS = "OK"; private static final String SET_IF_NOT_EXIST = "NX"; private ...原创 2017-12-09 15:55:41 · 441 阅读 · 0 评论