时间:2021-05-20
下面分享的是一个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多线程编程的实例,这里有几篇文章还是不错的:
Java多线程编程实现socket通信示例代码
浅谈Java多线程处理中Future的妙用(附源码)
Java通过卖票理解多线程
更多精彩内容尽在:!
在代码的世界里,你就是上帝!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了java停车场管理系统的具体代码,供大家参考,具体内容如下WorkFram.javapackagecom.parking;importjav
本文实例为大家分享了java停车场管理系统的具体代码,供大家参考,具体内容如下//车的类publicclasscar{publicStringnumber;//
本文实例为大家分享了java实现停车场系统的具体代码,供大家参考,具体内容如下现开发一个停车系统,用户根据车位停车1)车主查看现在有无车位(最多100个车位),
9月9日消息,为缓解停车难现状,广州南站将新增6个停车场,其中P9为出租车停车场,P10停车场为网约车专用。P9出租车蓄车场与P10网约车停车场将于今年10月1
共享停车位APP开发的方法: 1、精准定位:共享停车场APP开发与各家停车场合作,用户输入目的地后、平台会自动为用户挑选推荐附近的停车场,帮助用户快速找到停车