日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java多线程模拟龟兔赛跑

發布時間:2025/3/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java多线程模拟龟兔赛跑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

讓烏龜和兔子在同一個賽道從1開始跑到100,看看誰更快.

1 public class Racer implements Runnable{ 2 private static String winner;//勝利者 3 4 @Override 5 public void run() { 6 //賽道 7 for (int step = 1; step <= 100; step++) { 8 /* if(Thread.currentThread().getName().equals("兔子")&&step%50==0){ 9 try { 10 Thread.sleep(200); 11 } catch (InterruptedException e) { 12 e.printStackTrace(); 13 } 14 }*/ 15 System.out.println(Thread.currentThread().getName()+"---->走了"+step+"步"); 16 17 boolean flag= GameOver(step); 18 if(flag){ 19 break; 20 } 21 22 } 23 } 24 25 private boolean GameOver(int step) { 26 if(winner!=null){ 27 return true; 28 }else{ 29 if(step==100){ 30 winner=Thread.currentThread().getName(); 31 System.out.println("勝利者是-->"+winner); 32 } 33 } 34 return false; 35 } 36 37 public static void main(String[] args) { 38 Racer racer = new Racer(); 39 new Thread(racer,"兔子").start(); 40 new Thread(racer,"烏龜").start(); 41 42 } 43 44 }

運行結果:

兔子---->走了1步

...................

兔子---->走了98步
兔子---->走了99步
兔子---->走了100步
勝利者是-->兔子

怎么竟然是兔子贏了,可是現實中龜兔賽跑是烏龜贏了,我們加入線程睡眠要是兔子就讓他睡一會,烏龜就可以贏了.

1 public class Racer implements Runnable{ 2 private static String winner;//勝利者 3 4 @Override 5 public void run() { 6 //賽道 7 for (int step = 1; step <= 100; step++) { 8 if(Thread.currentThread().getName().equals("兔子")&&step%50==0){ 9 try { 10 Thread.sleep(200); 11 } catch (InterruptedException e) { 12 e.printStackTrace(); 13 } 14 } 15 System.out.println(Thread.currentThread().getName()+"---->走了"+step+"步"); 16 17 boolean flag= GameOver(step); 18 if(flag){ 19 break; 20 } 21 22 } 23 } 24 25 private boolean GameOver(int step) { 26 if(winner!=null){ 27 return true; 28 }else{ 29 if(step==100){ 30 winner=Thread.currentThread().getName(); 31 System.out.println("勝利者是-->"+winner); 32 } 33 } 34 return false; 35 } 36 37 public static void main(String[] args) { 38 Racer racer = new Racer(); 39 new Thread(racer,"兔子").start(); 40 new Thread(racer,"烏龜").start(); 41 42 } 43 44 }

運行結果:

烏龜---->走了96步
烏龜---->走了97步
烏龜---->走了98步
烏龜---->走了99步
烏龜---->走了100步
勝利者是-->烏龜
兔子---->走了50步

這下不管怎么跑都是烏龜贏了.

轉載于:https://www.cnblogs.com/xiaoqiqistudy/p/10984279.html

總結

以上是生活随笔為你收集整理的java多线程模拟龟兔赛跑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。