/**
* @ClassName: StartRunTest
* @date 2019年11月21日下午4:02:36
* @version: V1.0
*/
public class StartRunTest {
public static void main(String[] args) {
Semaphore semaphore = new Semaphore(10);
for (int i = 1; i <= 100; i++) {
new Parent(semaphore, "第" + i + "个" + ",").start();
}
}
}
class Parent extends Thread {
Semaphore wc;
String name;
public Parent(Semaphore wc, String name) {
this.wc = wc;
this.name = name;
}
@Override
public void run() {
// 获取到资源,减去1
int availablePermits = wc.availablePermits();
if (availablePermits > 0) {
} else {
System.out.println(name + "怎么没有茅坑了.....");
}
try {
wc.acquire();
System.out.println(name + "天主我也,我有茅坑啦!终于能上厕所了,爽!!!");
Thread.sleep(new Random().nextInt(1000)); // 模拟上厕所时间。
System.out.println(name + "厕所终于上完啦!");
} catch (InterruptedException e) {
} finally {
// 释放茅坑
wc.release();
}
}
}