核心
static Semaphore semaphore = new Semaphore(5,true);
private static void testSemaphore() {
for (int i = 0; i < 10; i++) {
final Thread thread = new Thread() {
@Override
public void run() {
super.run();
try {
limit();
} catch (Exception x) {
System.out.println(x.getMessage());
}
}
};
thread.setName("thread index:" + i);
thread.start();
}
}
private static void limit() throws InterruptedException {
semaphore.acquire();
System.out.println(Thread.currentThread().getName() + "---in");
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName() + "---out");
semaphore.release();
}
核心就是Semaphore类
网友评论