Java多线程相关知识【37】--并发包用法--Semaphore


菜鸟的一个学习笔记,欢迎大神 批评指正

Java多线程相关知识【37】–并发包用法–Semaphore

1.信号量

​ 如何保证多个线程在竞争一个资源时的不出错的情况。

2.相关方法

1.构造函数

Semaphore(int permits);//信号量初始化
Semaphore(int permits, boolean fair);// 信号量初始化,并尽可能保证公平

2.相关方法

返回类型方法说明
voidacquire()获取一个信号量
voidacquire(int permits)获取定义个信号量
voidacquireUninterruptibly()忽略一个中断的异常
voidacquireUninterruptibly(int permits)忽略多个个中断的异常
intavailablePermits()当前可用个数
intdrainPermits()获取到所有的许可证
protected CollectiongetQueuedThreads()继承后,可获取当前使用的正在等待的线程
intgetQueueLength()当前被休眠的进程个数
booleanhasQueuedThreads()是否有线程在此信号量中
booleanisFair()是否公平状态
protected voidreducePermits(int reduction)
voidrelease()释放一个信号量
voidrelease(int permits)释放输入个信号量
StringtoString()返回信号量的状态字符串
booleantryAcquire()尝试获取一个信号量
booleantryAcquire(int permits)尝试获取多个信号量
booleantryAcquire(int permits, long timeout, TimeUnit unit)尝试获取多个信号量,并设置等待的时间
booleantryAcquire(long timeout, TimeUnit unit)尝试获取一个信号量,并设置等待的时间
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值