Semaphore最简单的使用
答:
import java.util.concurrent.Semaphore;
public class SemaphoreTest {
private Semaphore semaphore = new Semaphore(1);
public void testMethod() {
try {
semaphore.acquire();System.out.println(Thread.currentThread().getName() + "执行时间="
+ System.currentTimeMillis());
semaphore.release();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Semaphore的构造方法表示同一时间内最多只有1个线程可以执行acquire()和release()之间的代码,还可以传入x(必须大于0)的许可,代表同一时间内,最多允许有x个线程可以执行acquire()和release()之间的代码。无参方法acquire()的作用是使用1个许可,是减法操作,无参方法release()的作用是增加1个许可,相当释放资源,别的线程才可以执行这段代码。
本文链接:http://www.yayihouse.com/yayishuwu/chapter/1390