并发编程系列之Semaphore用法简介

x33g5p2x  于2021-11-29 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(317)

1、Semaphore计数信号量定义

理解:就是要给令牌池,可获取信号量(令牌或者许可)、放入信号量。常用于控制并发的线程数,也可用于池类资源的访问控制。

2、Semaphore用法api

  • 构造方法

  • Semaphore(int permits):指定初始许可数

  • Semaphore(int permits , boolean fair):指定是否公平模式

  • 尝试获取许可

  • boolean tryAcquire(long timeout , TimeUnit unit)

  • boolean tryAcquire(int permits)

  • boolean tryAcquire(int permits, long timeout , TimeUnit unit)

  • 获取许可

  • void acquire() throws InterruptedException;:获取1个许可,可中断

  • void acquire(int permits) throws InterruptedException;:获取指定数量的许可,可中断

  • void acquireUninterruptibly():获取1个许可,不可中断

  • void acquireUninterruptibly(int permits)

  • int drainPermits():获取当前所有可用的

  • 放入许可

  • void release():放入1个

  • void release(int permits):放入多个

  • 其它API

  • boolean isFair()

  • int availablePermits

  • boolean hasQueuedThreads()

  • int getQueueLength()

  • Collection<Thread> getQueuedThreads()

相关文章

微信公众号

最新文章

更多