/*某停车场共有100个车位 ,编号 1-100;开启两个线程模拟两个入口,每个入口一次驶入一辆车
* 需要耗时100ms;每驶入一辆车控制台打印出停靠的车位号,知道停车场停满车为止:
* 耗时:7分48秒
* */
public class 停车场 {
public static void main(String[] args) {
Port p1 = new Port();
Port p2 = new Port();
p1.setName("入口一");
p2.setName("入口二");
p1.start();
p2.start();
}
}
class Port extends Thread{
private static int num=100;
public void run(){
int count=1;
while(true){
synchronized(Port.class){
if(num<=0){
break;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+",驶入第"+count+"车");
num--;
count++;
}
}
System.out.println("没有位置了");
count--;
System.out.println(Thread.currentThread().getName()+"输入共"+count+"辆车");
}
} |
|