乐观锁与悲观锁-Redisson-锁止

原创
小哥 3年前 (2022-11-08) 阅读数 40 #大杂烩

闭锁(CountDownLatch):当要完成某些操作时,在其他线程的所有操作完成之前,当前操作不会继续。

@GetMapping("/lockdoor")
@ResponseBody
public String lockDoor() throws InterruptedException {

    RCountDownLatch door = redisson.getCountDownLatch("door");
    door.trySetCount(5);//设置计数5个
    door.await();//5只有在我们走完之后,我们才会继续往下走。
    return "都走完了";
}

@GetMapping("/gogogo/{id}")
@ResponseBody
public String gogogo(@PathVariable int id){

    RCountDownLatch door = redisson.getCountDownLatch("door");
    door.countDown();//每次执行,锁定-1(redis中的door去-1)
    return id+"号走了";
}

总结:countDown()调用5次后,await只有这样,它才不会阻塞,而且会继续下降。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门