分布式锁RSemaphore介绍

分布式锁RSemaphore介绍目录 一 简介 二 方法总结 三 方法详情 1 acquire 2 acquire int permits 3 tryAcquire 4 tryAcquire int permits 5 tryAcquire long waitTime TimeUnit unit 6 tryAcquire int permits long

大家好,我是讯享网,很高兴认识大家。

目录

一.简介

二.方法总结

三.方法详情

1.acquire()

2.acquire(int permits)

3.tryAcquire()

4.tryAcquire(int permits)

5.tryAcquire​(long waitTime, TimeUnit unit)

6.tryAcquire​(int permits, long waitTime, TimeUnit unit)

7.release()

8.release​(int permits)

9.availablePermits()

10.drainPermits()

11.trySetPermits​(int permits)

12.addPermits​(int permits)

四.使用示例

五.源码解析


讯享网

1.semaphore.trySetPermits(3);

2.semaphore.acquire()

3.semaphore.release()

总结


一.简介

 RSemaphore基于 Redis 的Semaphore开发。使用RSemaphore获取资源的顺序是不可预测的,所以它是一种非公平锁。可以理解为分布式的信号量,它的作用是用来限制同时访问共享区域的线程数量

二.方法总结

Modifier and Type Method Description
void acquire() 获取1个permit.
void acquire(int permits) 获取定义数量的permits.
void addPermits(int permits) 按定义的值增加或减少可用许可证的数量。
int availablePermits() 返回可用许可证的数量。
int drainPermits() 获取并返回所有立即可用的许可证。
void release() 释放1个permit.
void release(int permits) 释放定义数量的permits.
boolean tryAcquire() 尝试获取当前可用的许可证。
boolean tryAcquire​(int permits) 尝试获取定义数量的permits
boolean tryAcquire(int permits, long waitTime, TimeUnit unit) 尝试获取定义数量的permits。如果获取不到,就一直等待,直到获取到指定数量的permits。最长等待waitTime时间。
boolean tryAcquire(long waitTime, TimeUnit unit) 尝试获取1个permit。如果获取不到,就一直等待,直到成功获取1个permit。最长等待waitTime时间。
boolean trySetPermits(int permits) 尝试设置许可证数量。

三.方法详情

1.acquire()

void acquire() throws InterruptedException

讯享网

获取1个permit。如果没有,会一直等待,直到获得1个permit

抛出:

InterruptedException - 如果当前线程被中断

InterruptedException

2.acquire(int permits)

讯享网void acquire​(int permits) throws InterruptedException

获取定义数量的permits。如果没有,会一直等待,直到获得定义数量的permits。

参数:

permits - 获得许可的数量

抛出:

InterruptedException - 如果当前线程被中断

IllegalArgumentException- 如果permits是负数

3.tryAcquire()

boolean tryAcquire() 

尝试获取当前可用的许可证。

返回:
小讯
上一篇 2025-04-10 23:47
下一篇 2025-02-13 21:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26461.html