74、缓存---分布式锁---Redisson闭锁测试

    @Autowired
    RedissonClient redissonClient;

    @Autowired
    StringRedisTemplate redisTemplate;

    //闭锁
    @GetMapping("/lockDoor")
    @ResponseBody
    public String lockDoor() throws InterruptedException {
        RCountDownLatch door = redissonClient.getCountDownLatch("door");
        door.trySetCount(5);//计数为5,每有一个闭锁完成,计数减1
        door.await();//等待闭锁都完成

        return "放假了...";
    }

    @GetMapping("/gogogo/{id}")
    @ResponseBody
    public String gogogo(@PathVariable("id") Long id){
        RCountDownLatch door = redissonClient.getCountDownLatch("door");
        door.countDown();//计数减去一

        return id + "班的人走完了";
    }
posted @ 2023-02-01 20:19  不是孩子了  阅读(33)  评论(0)    收藏  举报