基于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 接口,上一个接口锁门成功。
版权声明:本文为qq_33732195原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。