首页 > 其他分享 >Semaphore

Semaphore

时间:2022-10-24 22:36:16浏览次数:51  
标签:permits int void tryAcquire boolean Semaphore public


1.介绍

信号量为多线程协作提供了更为强大的控制方法。广义上说信号量是对锁的扩展,可以指定多个线程同时访问某一资源。

2. 构造方法

public Semaphore(int permits) {
sync = new NonfairSync(permits);
}

public Semaphore(int permits, boolean fair) {
sync = fair ? new FairSync(permits) : new NonfairSync(permits);
}

3. 主要方法

public void acquire() throws InterruptedException;
public void acquireUninterruptibly();
public void acquire(int permits) throws InterruptedException;
public boolean tryAcquire() ;
public boolean tryAcquire(long timeout, TimeUnit unit);
public boolean tryAcquire(int permits);
public boolean tryAcquire(int permits, long timeout, TimeUnit unit)
throws InterruptedException;
public void release(int permits);

acquire()方法会尝试获得一个准入许可,若无法获得,则线程会等待,直到有一个线程释放一个许可或者当前线程被中断

实时内容请关注微信公众号,公众号与博客同时更新:程序员星星

Semaphore_微信公众号


标签:permits,int,void,tryAcquire,boolean,Semaphore,public
From: https://blog.51cto.com/u_7841967/5791476

相关文章