最新国产好看的视频,伊人天堂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)文章

  • Java synchronized重量級鎖實現(xiàn)過程淺析

    Java synchronized重量級鎖實現(xiàn)過程淺析

    這篇文章主要介紹了Java synchronized重量級鎖實現(xiàn)過程,synchronized是Java里的一個關(guān)鍵字,起到的一個效果是"監(jiān)視器鎖",它的功能就是保證操作的原子性,同時禁止指令重排序和保證內(nèi)存的可見性
    2023-02-02
  • java后端解決跨域的幾種問題解決

    java后端解決跨域的幾種問題解決

    這篇文章主要介紹了java后端解決跨域的幾種問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java?ynchronized重量級鎖的核心原理詳解

    Java?ynchronized重量級鎖的核心原理詳解

    這篇文章主要為大家詳細(xì)介紹了Java?ynchronized重量級鎖的核心原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 基于Eclipse 的JSP/Servlet的開發(fā)環(huán)境的搭建(圖文)

    基于Eclipse 的JSP/Servlet的開發(fā)環(huán)境的搭建(圖文)

    本文將會詳細(xì)地展示如何搭建JSP的開發(fā)環(huán)境。本次教程使用的是最新版的Eclipse 2018-09編輯器和最新版的Apache Tomcat v9.0,步驟詳細(xì),內(nèi)容詳盡,適合零基礎(chǔ)學(xué)者作為學(xué)習(xí)參考
    2018-12-12
  • Java8新特性之再見Permgen_動力節(jié)點Java學(xué)院整理

    Java8新特性之再見Permgen_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了Java8新特性之再見Permgen的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-06-06
  • 對象轉(zhuǎn)Json字符串時如何忽略指定屬性

    對象轉(zhuǎn)Json字符串時如何忽略指定屬性

    這篇文章主要介紹了對象轉(zhuǎn)Json字符串時如何忽略指定屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解如何讓Spring MVC顯示自定義的404 Not Found頁面

    詳解如何讓Spring MVC顯示自定義的404 Not Found頁面

    這篇文章主要介紹了詳解如何讓Spring MVC顯示自定義的404 Not Found頁面,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié)

    JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié)

    轉(zhuǎn)發(fā)和重定向是JavaWeb中常用的兩種頁面跳轉(zhuǎn)方式,它們在實現(xiàn)上有一些區(qū)別,本文主要介紹了JavaWeb中轉(zhuǎn)發(fā)與重定向的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 學(xué)習(xí)Java多線程之線程定義、狀態(tài)和屬性

    學(xué)習(xí)Java多線程之線程定義、狀態(tài)和屬性

    這篇文章主要為大家詳細(xì)介紹了Java多線程之線程定義、狀態(tài)和屬性,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 關(guān)于使用jpa聚合函數(shù)遇到的問題

    關(guān)于使用jpa聚合函數(shù)遇到的問題

    這篇文章主要介紹了關(guān)于使用jpa聚合函數(shù)遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

长沙市| 南乐县| 上思县| 四平市| 闵行区| 呈贡县| 石嘴山市| 桃园县| 西乌珠穆沁旗| 鄂尔多斯市| 宣恩县| 大荔县| 晋城| 和林格尔县| 舟曲县| 富裕县| 四平市| 东乡| 房山区| 新晃| 延庆县| 佛冈县| 梅州市| 开平市| 宜宾市| 增城市| 卢氏县| 金平| 安乡县| 武夷山市| 诸城市| 嘉定区| 潮安县| 安康市| 当阳市| 滨海县| 庆阳市| 渝北区| 朝阳县| 丘北县| 江都市|