美文网首页
计数信号量(Semaphore)

计数信号量(Semaphore)

作者: 那个人一一加油 | 来源:发表于2023-01-31 20:29 被阅读0次

信号量是Java多线程的辅助类,他可以实现控制访问指定区域的线程数量

Semaphore sem=new Semaphore(premit,isFair);

premit是初始值,当一个线程拿到访问权限时,则该值减一。如果该值为0,则其他线程进入等待,或者继续往下执行。

isFair是否是公平模式,如果是,则按等待时间长短来排序,等待时间越长的则优先。

sem.acquire(premit) 获取锁,如果获取不到则进入等待,直到拿到锁为止。premit是获取令牌数量,默认为1

boolean sem.tryAcquire(premit),尝试去获取锁,如果拿不到,则继续往下执行。premit是获取令牌数量,默认为1

boolean sem.tryAcquire(premit,timeout,timeUnit) 尝试去获取锁,如果没有拿到则等待设定的时间,超时则继续往下执行

premit是获取令牌数量,默认为1

sem.release(premit); 释放锁,premit是释放锁的数量,默认为1 

相关文章

网友评论

      本文标题:计数信号量(Semaphore)

      本文链接:https://www.haomeiwen.com/subject/jwebhdtx.html