信号量Semaphore的使用
允许多个线程同时访问:信号量(Semaphore) 信号量为多线程协作提供了更为强大的控制方法。广义上说,信号量是对锁的扩展。无论是内部锁synchronized还是重入锁ReentrantLock,一次都只允许一个线程访问一个资源,而信号量指定多个线程访问同一个资源。信号主要提供以下的构造函数。 public Semaphore(int permits);//permits 指定信号量的准入数 public Semaphore(int permits,boolean fair);//第二个参数指定是否公平 在构造信号量时,必须指定信号量的准入数,即同时能申请多少许可,若一个线程每次只申请一个许可,这就相当于指定了同时允许多少个线程能访问同一资源。信号量的主要逻辑方法包括以下几种: public void acquire(); public void acquireUninterruptibly(); public boolean tryAcquire(); public boolean tryAcquire(long timeout,TimeUnit unit); public vo...