最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多線程編程小實例模擬停車場系統(tǒng)

 更新時間:2017年10月24日 15:05:01   作者:diaotai  
這是一個關(guān)于Java多線程編程的例子,用多線程的思想模擬停車場管理系統(tǒng),這里分享給大家,供需要的朋友參考。

下面分享的是一個Java多線程模擬停車場系統(tǒng)的小實例(Java的應(yīng)用還是很廣泛的,哈哈),具體代碼如下:

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(); 
     
  } 
}

運行結(jié)果如下:

車 111111成功停在1號停車位上
車 111111成功停在2號停車位上
車 222222成功停在3號停車位上
車 222222已離開停車場
車 222222成功停在3號停車位上
車 222222已離開停車場
車 222222成功停在3號停車位上
車 222222已離開停車場
車 555555成功停在3號停車位上
車 555555已離開停車場
車 555555成功停在3號停車位上
停車場車位已滿,車 444444停車失敗
····

總結(jié)

以上就是本文關(guān)于Java多線程編程小實例模擬停車場系統(tǒng)的全部內(nèi)容,希望對大家有所幫助。如果您想了解更多有關(guān)Java多線程編程的實例,這里有幾篇文章還是不錯的:

Java多線程編程實現(xiàn)socket通信示例代碼

淺談Java多線程處理中Future的妙用(附源碼)

Java通過賣票理解多線程

更多精彩內(nèi)容盡在:腳本之家!

在代碼的世界里,你就是上帝!

相關(guān)文章

最新評論

济源市| 哈尔滨市| 清丰县| 吉林省| 宁远县| 巫溪县| 蕉岭县| 青河县| 彭阳县| 漠河县| 广河县| 秦安县| 昌宁县| 登封市| 永康市| 雷波县| 鹰潭市| 巴林右旗| 临沧市| 定安县| 黄梅县| 阿城市| 沙河市| 宿松县| 五莲县| 临漳县| 抚远县| 昆山市| 来安县| 方山县| 新疆| 荣昌县| 沂南县| 沿河| 金山区| 舒兰市| 正定县| 呼图壁县| 潼关县| 工布江达县| 镇康县|