中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java多線程編程小實例模擬停車場系統

發布時間:2020-10-09 22:43:46 來源:腳本之家 閱讀:261 作者:diaotai 欄目:編程語言

下面分享的是一個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通過賣票理解多線程

更多精彩內容盡在:億速云!

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂托克前旗| 龙州县| 五指山市| 安庆市| 滕州市| 安龙县| 广南县| 上林县| 松原市| 翁牛特旗| 读书| 荣成市| 芮城县| 浠水县| 平罗县| 沂水县| 古浪县| 长治市| 普兰店市| 汕尾市| 托里县| 北京市| 东阿县| 新田县| 新安县| 婺源县| 卓资县| 河东区| 革吉县| 林州市| 和龙市| 海兴县| 马关县| 鄱阳县| 库尔勒市| 永平县| 淅川县| 泸溪县| 保定市| 大足县| 嘉定区|