分布式闭锁 CountDownLatch

基于Redisson的Redisson分布式闭锁(RCountDownLatch),跟 juc包下的CountDownLatch类的接口和用法相似;

模拟锁门,5个同学,全部离开教室后锁门

//锁门
@GetMapping("/lockDoor")
@ResponseBody
public String lockDoor() throws InterruptedException {
    RCountDownLatch door = redisson.getCountDownLatch("door");
    door.trySetCount(5);
    //等待闭锁完成
    door.await();
    return "锁门成功!";
}

//离开
@GetMapping("/leave/{id}")
@ResponseBody
public String leave(@PathVariable String id){
    RCountDownLatch door = redisson.getCountDownLatch("door");
    //计数-1
    door.countDown();
    return id+"同学离开了...";
}

测试

访问http://localhost:10002/lockDoor 接口,阻塞;

访问5次 http://localhost:10002/leave/1 接口,上一个接口锁门成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值