信号量
信号量可以指定多个线程,同时访问某一个资源。
构造函数
// permits 为允许的个数
public Semaphore(int permits)
public Semaphore(int permits, boolean fair)//第二个参数指定是否公平
方法
//尝试获得一个准许
public void acquire()
//该方法不响应中断
public void acquireUninterruptibly()
//尝试获得一个准许,成功返回true,失败返回false,不会等待
public boolean tryAcquire()
//timeout时间等待获得一个准许
public boolean tryAcquire(long timeout, TimeUnit unit)
//在线程访问资源结束后,释放一个许可
public void release()
读写锁
ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();
Lock readLock = readWriteLock.readLock();
Lock writeLock = readWriteLock.writeLock();