亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

下面分享的是一個(gè)Java多線程模擬停車場(chǎng)系統(tǒng)的小實(shí)例(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)+"號(hào)停車位上"); 
          p.park[i]=true; 
          c.setPosition(i); 
          break; 
        } 
      } 
      if(i==3) 
        System.out.println("停車場(chǎng)車位已滿,車 "+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()+"已離開停車場(chǎng)"); 
           
        } 
        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(); 
     
  } 
}

運(yùn)行結(jié)果如下:

車 111111成功停在1號(hào)停車位上
車 111111成功停在2號(hào)停車位上
車 222222成功停在3號(hào)停車位上
車 222222已離開停車場(chǎng)
車 222222成功停在3號(hào)停車位上
車 222222已離開停車場(chǎng)
車 222222成功停在3號(hào)停車位上
車 222222已離開停車場(chǎng)
車 555555成功停在3號(hào)停車位上
車 555555已離開停車場(chǎng)
車 555555成功停在3號(hào)停車位上
停車場(chǎng)車位已滿,車 444444停車失敗
····

總結(jié)

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

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

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

Java通過賣票理解多線程

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

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

相關(guān)文章

  • java項(xiàng)目中讀取jdbc.properties文件操作

    java項(xiàng)目中讀取jdbc.properties文件操作

    這篇文章主要介紹了java項(xiàng)目中讀取jdbc.properties文件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Netty分布式ByteBuf使用directArena分配緩沖區(qū)過程解析

    Netty分布式ByteBuf使用directArena分配緩沖區(qū)過程解析

    這篇文章主要介紹了Netty分布式ByteBuf使用directArena分配緩沖區(qū)過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • java 實(shí)現(xiàn)判斷回文數(shù)字的實(shí)例代碼

    java 實(shí)現(xiàn)判斷回文數(shù)字的實(shí)例代碼

    這篇文章主要介紹了java 實(shí)現(xiàn)判斷回文數(shù)字的實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • JAVA后臺(tái)轉(zhuǎn)換成樹結(jié)構(gòu)數(shù)據(jù)返回給前端的實(shí)現(xiàn)方法

    JAVA后臺(tái)轉(zhuǎn)換成樹結(jié)構(gòu)數(shù)據(jù)返回給前端的實(shí)現(xiàn)方法

    這篇文章主要介紹了JAVA后臺(tái)轉(zhuǎn)換成樹結(jié)構(gòu)數(shù)據(jù)返回給前端的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • SpringBoot中調(diào)用通用URL的實(shí)現(xiàn)

    SpringBoot中調(diào)用通用URL的實(shí)現(xiàn)

    在 Spring Boot 應(yīng)用程序中,有時(shí)候我們需要調(diào)用一些通用的 URL 接口,本文主要介紹了SpringBoot中調(diào)用通用URL的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 最新評(píng)論