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;i
Test2:
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通过卖票理解多线程
更多精彩内容尽在:毛票票!
在代码的世界里,你就是上帝!