Java多线程编程小实例模拟停车场系统
下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下:
Park类
publicclassPark{ boolean[]park=newboolean[3]; publicbooleanequals() { returntrue; } }
Car:
publicclassCar{ privateStringnumber; privateintposition=0; publicCar(Stringnumber) { this.number=number; } publicvoidsetNumber(Stringnumber) { this.number=number; } publicStringgetNumber() { returnnumber; } publicvoidsetPosition(inti) { position=i; } publicintgetPosition() { returnposition; } publicinthashCode() { returnnumber.hashCode(); } publicbooleanequals(Objectobj) { if(obj==this) returntrue; if(obj!=null&&obj.getClass()==Car.class) { Carc=(Car)obj; returnc.number==this.number; } returnfalse; } }
ParkCar:
publicclassParkCarimplementsRunnable { Carc; Parkp; publicParkCar(Carc,Parkp) { this.c=c; this.p=p; } @Override publicvoidrun() { while(true) { inti=0; synchronized(p) { if(c.getPosition()==0) { for(i=0;iTest2:
publicclassTest2{ publicstaticvoidmain(String[]args) { Parkp=newPark(); Cara=newCar("111111"); Carb=newCar("222222"); Carc=newCar("333333"); Card=newCar("444444"); Care=newCar("555555"); newThread(newParkCar(a,p)).start(); newThread(newParkCar(c,p)).start(); newThread(newParkCar(d,p)).start(); newThread(newParkCar(e,p)).start(); newThread(newParkCar(b,p)).start(); } }运行结果如下:
车111111成功停在1号停车位上 车111111成功停在2号停车位上 车222222成功停在3号停车位上 车222222已离开停车场 车222222成功停在3号停车位上 车222222已离开停车场 车222222成功停在3号停车位上 车222222已离开停车场 车555555成功停在3号停车位上 车555555已离开停车场 车555555成功停在3号停车位上 停车场车位已满,车444444停车失败 ····
总结 以上就是本文关于Java多线程编程小实例模拟停车场系统的全部内容,希望对大家有所帮助。如果您想了解更多有关Java多线程编程的实例,这里有几篇文章还是不错的:
Java多线程编程实现socket通信示例代码
浅谈Java多线程处理中Future的妙用(附源码)
Java通过卖票理解多线程
更多精彩内容尽在:毛票票!
在代码的世界里,你就是上帝!