• 基于数据库悲观锁的分布式锁


    一、基于数据库悲观锁的分布式锁 

     代码

       

    package com.example.distributelock.controller;
    
    import com.example.distributelock.dao.DistributeLockMapper;
    import com.example.distributelock.model.DistributeLock;
    import com.example.distributelock.model.DistributeLockExample;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.transaction.annotation.Transactional;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    @RestController
    @Slf4j
    public class DemoController {
        @Resource
        private DistributeLockMapper distributeLockMapper;
    
        @RequestMapping("singleLock")
        @Transactional(rollbackFor = Exception.class)
        public String singleLock() throws Exception {
            log.info("我进入了方法!");
            DistributeLock distributeLock = distributeLockMapper.selectDistributeLock("demo");
            if (distributeLock==null) throw new Exception("分布式锁找不到");
            log.info("我进入了锁!");
            try {
                Thread.sleep(20000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "我已经执行完成!";
        }
    }
    Controller
  • 相关阅读:
    STM32 时钟配置分析
    STM32 开发板资源梳理
    STM32 摄像头实验OV2640
    STM32 TFT液晶屏与FSMC
    STM32 开发板电源与供电方式
    视觉里程计07 Qt的一些bug修改记录
    解决wireshark检测不到网卡的问题
    gdb 脚本调试
    [转] GCC 中的编译器堆栈保护技术
    使用gdbserver远程调试
  • 原文地址:https://www.cnblogs.com/callbin/p/14580274.html
Copyright © 2020-2023  润新知