Java多线程编程小实例模拟停车场系统
程序员文章站
2024-04-02 09:12:46
下面分享的是一个java多线程模拟停车场系统的小实例(java的应用还是很广泛的,哈哈),具体代码如下:
park类
public class park {...
下面分享的是一个java多线程模拟停车场系统的小实例(java的应用还是很广泛的,哈哈),具体代码如下:
park类
public class park { boolean []park=new boolean[3]; public boolean equals() { return true; } }
car:
public class car { private string number; private int position=0; public car(string number) { this.number=number; } public void setnumber(string number) { this.number=number; } public string getnumber() { return number; } public void setposition(int i) { position=i; } public int getposition() { return position; } public int hashcode() { return number.hashcode(); } public boolean equals(object obj) { if(obj==this) return true; if(obj!=null&&obj.getclass()==car.class) { car c=(car)obj; return c.number==this.number; } return false; } }
parkcar:
public class parkcar implements runnable { car c; park p; public parkcar(car c,park p) { this.c=c; this.p=p; } @override public void run() { while(true) { int i=0; synchronized(p) { if(c.getposition()==0) { for(i=0;i<p.park.length;i++) { if(p.park[i]) { continue; } else { system.out.println("车 "+c.getnumber()+"成功停在"+(i+1)+"号停车位上"); p.park[i]=true; c.setposition(i); break; } } if(i==3) system.out.println("停车场车位已满,车 "+c.getnumber()+"停车失败"); } try { thread.sleep(100); } catch(interruptedexception ie) { ie.printstacktrace(); } } synchronized(p) { if(c.getposition()!=0) { p.park[c.getposition()]=false; c.setposition(0); system.out.println("车 "+c.getnumber()+"已离开停车场"); } try { thread.sleep(100); } catch(interruptedexception ie) { ie.printstacktrace(); } } } } }
test2:
public class test2 { public static void main(string []args) { park p=new park(); car a=new car("111111"); car b=new car("222222"); car c=new car("333333"); car d=new car("444444"); car e=new car("555555"); new thread (new parkcar(a,p)).start(); new thread (new parkcar(c,p)).start(); new thread (new parkcar(d,p)).start(); new thread (new parkcar(e,p)).start(); new thread (new parkcar(b,p)).start(); } }
运行结果如下:
车 111111成功停在1号停车位上 车 111111成功停在2号停车位上 车 222222成功停在3号停车位上 车 222222已离开停车场 车 222222成功停在3号停车位上 车 222222已离开停车场 车 222222成功停在3号停车位上 车 222222已离开停车场 车 555555成功停在3号停车位上 车 555555已离开停车场 车 555555成功停在3号停车位上 停车场车位已满,车 444444停车失败 ····
总结
以上就是本文关于java多线程编程小实例模拟停车场系统的全部内容,希望对大家有所帮助。如果您想了解更多有关java多线程编程的实例,这里有几篇文章还是不错的:
更多精彩内容尽在:
在代码的世界里,你就是上帝!