/**
* 注意,当前semaphore只能给当前接口使用,由于springMVC成员变量不安全
*/
private Semaphore semaphore = new Semaphore(2);
@GetMapping(value = “/test/t2”)
public String test2() throws InterruptedException {
Random random = new Random(1000);
int num = random.nextInt();
System.out.println(“semaphore.availablePermits:” + semaphore.availablePermits());
if (semaphore.availablePermits() == 0) {
System.out.println(Thread.currentThread().getName() + “不能进入了”);
return “不能进入了”;
} else {
semaphore.acquire(1);
System.out.println(Thread.currentThread().getName() + “sleep 3s”);
Thread.sleep(3000);
semaphore.release(1);
return “执行完成” + num;
}