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

Java實(shí)現(xiàn)多線程模擬龜兔賽跑

 更新時(shí)間:2020年11月23日 16:36:29   作者:ChristopherIn  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多線程模擬龜兔賽跑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Java多線程模擬龜兔賽跑,供大家參考,具體內(nèi)容如下

筆者利用Java多線程技術(shù),將兔子和烏龜?shù)呐懿揭詢蓚€(gè)線程的方式模擬出來,以達(dá)到一個(gè)初步的效果。
題目如下:路程總距離為35米
兔子:每秒跑5米,每跑10米,休息2秒;
烏龜:每秒跑3米,不休息。

所用工具

JDK1.8+IntelliJ IDEA 2020.1

代碼

Race.java:(線程類,通過new出來的對象的不同線程名,然后分別模擬兔子和烏龜?shù)呐懿剑?/p>

package task;
import org.omg.Messaging.SYNC_WITH_TRANSPORT;
public class Race extends Thread {
  private int mile=35;//剩下的路程
  public int getMile() {
    return mile;
  }
  public void setMile(int mile) {
    this.mile = mile;
  }
  public void run(){
    long time1=System.currentTimeMillis();//記錄開始跑的時(shí)間
    if(getName().equals("兔子")){
      while(mile>0) {
        if ((int)(System.currentTimeMillis()-time1) % 2000 == 0 && (int)(System.currentTimeMillis()-time1) != 0) {//每跑10米即每過2秒休息2秒
          try {
            System.out.println("兔子正在休息2秒");
            Thread.sleep(2000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
        }
        if((int)(System.currentTimeMillis()-time1)%1000==0&& (int)(System.currentTimeMillis()-time1) != 0) {
          try {
            Thread.sleep(1000);
            mile -= 5;
            System.out.println("兔子跑了"+(35-mile)+"米");//35-mile即為跑過的距離
          }catch(InterruptedException e){
            e.printStackTrace();
          }
        }
      }
      System.out.println("兔子到達(dá)終點(diǎn)");
    }else if(getName().equals("烏龜")){
      while(mile>0){
        if((int)(System.currentTimeMillis()-time1)%1000==0&& (int)(System.currentTimeMillis()-time1) != 0) {
          try {
            Thread.sleep(1000);
            mile -= 3;
            if(mile<0){
              mile=0;
            }
            System.out.println("烏龜跑了"+(35-mile)+"米");//35-mile即為跑過的距離
          }catch(InterruptedException e){
            e.printStackTrace();
          }
        }
      }
      System.out.println("烏龜?shù)竭_(dá)終點(diǎn)");
    }else{

    }
  }
}

測試類demoo.java:(通過設(shè)置線程優(yōu)先級(jí)來實(shí)現(xiàn)烏龜先跑,否則線程執(zhí)行順序不可控?。。。?/p>

package task;
public class demoo {
  public static void main(String[] args) {
    Thread rabbit=new Race();
    rabbit.setName("兔子");
    Thread turtle=new Race();
    turtle.setName("烏龜");
    turtle.setPriority(Thread.MAX_PRIORITY);
    rabbit.setPriority(Thread.MIN_PRIORITY);
    turtle.start();
    rabbit.start();
  }
}

測試結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java獲取resources下文件路徑的幾種方法及遇到的問題

    Java獲取resources下文件路徑的幾種方法及遇到的問題

    這篇文章主要給大家介紹了關(guān)于Java獲取resources下文件路徑的幾種方法及遇到的問題,在Java開發(fā)中經(jīng)常需要讀取項(xiàng)目中resources目錄下的文件或獲取資源路徑,需要的朋友可以參考下
    2023-12-12
  • Java Mybatis數(shù)據(jù)源之工廠模式

    Java Mybatis數(shù)據(jù)源之工廠模式

    這篇文章主要介紹了Java Mybatis數(shù)據(jù)源之工廠模式,工廠模式是比較簡單的設(shè)計(jì)模式,Mybatis的數(shù)據(jù)源的部分使用了工廠模式,文章詳細(xì)介紹內(nèi)容需要的朋友可以參考一下
    2022-06-06
  • Mybatis-Plus select不列出全部字段的方法

    Mybatis-Plus select不列出全部字段的方法

    這篇文章主要介紹了Mybatis-Plus select不列出全部字段的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Spring?使用注解存儲(chǔ)和讀取?Bean對象操作方法

    Spring?使用注解存儲(chǔ)和讀取?Bean對象操作方法

    在?Spring?中,要想更加簡單的實(shí)現(xiàn)對?Bean?對象的儲(chǔ)存和使用,其核心就是使用?注解?,本文主要就是演示如何使用注解實(shí)現(xiàn)對?Bean?對象的存取操作,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • 簡單了解java獲取類的3種方式

    簡單了解java獲取類的3種方式

    這篇文章主要介紹了java獲取類的3種方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Spring Boot四大神器之CLI的具體使用

    Spring Boot四大神器之CLI的具體使用

    本文主要介紹了Spring Boot四大神器之CLI的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java的枚舉,注解和反射(一)

    Java的枚舉,注解和反射(一)

    今天小編就為大家分享一篇關(guān)于Java枚舉,注解與反射原理說明,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2021-07-07
  • java命令執(zhí)行jar包的多種方法(四種方法)

    java命令執(zhí)行jar包的多種方法(四種方法)

    本文通過四種方法給大家介紹java命令執(zhí)行jar包的方式,每種方法通過實(shí)例代碼給大家詳解,需要的朋友參考下吧
    2019-11-11
  • Java實(shí)現(xiàn)加鹽加密算法的示例詳解

    Java實(shí)現(xiàn)加鹽加密算法的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)加鹽加密算法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • JVM?中的?returnAddress過程詳解

    JVM?中的?returnAddress過程詳解

    JVM的畢竟是個(gè)虛擬機(jī),是一種規(guī)范,雖說符合馮諾依曼的計(jì)算機(jī)設(shè)計(jì)理念,但是他并不是實(shí)體計(jì)算機(jī),所以他的組成也不是什么存儲(chǔ)器,控制器,運(yùn)算 器,輸入輸出設(shè)備,本文給大家介紹JVM?中的?returnAddress,感興趣的朋友一起看看吧
    2022-04-04

最新評(píng)論

南通市| 应城市| 绥德县| 阜康市| 苗栗市| 化德县| 德惠市| 吴桥县| 通渭县| 沅陵县| 龙江县| 吉木萨尔县| 清原| 霸州市| 左贡县| 弥渡县| 波密县| 北流市| 缙云县| 多伦县| 安乡县| 来安县| 北京市| 宣恩县| 平山县| 来凤县| 武威市| 内乡县| 宁陕县| 上杭县| SHOW| 光山县| 榆林市| 沈阳市| 万宁市| 琼中| 涡阳县| 南投县| 康平县| 名山县| 根河市|