Java多线程编程小实例模拟停车场系统
更新时间:2017年10月24日 15:05:01 作者:diaotai
这是一个关于Java多线程编程的例子,用多线程的思想模拟停车场管理系统,这里分享给大家,供需要的朋友参考。
下面分享的是一个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多线程编程的实例,这里有几篇文章还是不错的:
更多精彩内容尽在:脚本之家!
在代码的世界里,你就是上帝!
相关文章
基于Eclipse 的JSP/Servlet的开发环境的搭建(图文)
本文将会详细地展示如何搭建JSP的开发环境。本次教程使用的是最新版的Eclipse 2018-09编辑器和最新版的Apache Tomcat v9.0,步骤详细,内容详尽,适合零基础学者作为学习参考2018-12-12
Java8新特性之再见Permgen_动力节点Java学院整理
这篇文章主要介绍了Java8新特性之再见Permgen的相关知识,非常不错,具有参考借鉴价值,需要的的朋友参考下吧2017-06-06
详解如何让Spring MVC显示自定义的404 Not Found页面
这篇文章主要介绍了详解如何让Spring MVC显示自定义的404 Not Found页面,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-10-10


最新评论