《塞伯利亞之謎:之前的世界》PC版3月18日發行
阿新 • • 發佈:2022-01-22
- 首先來個賽道距離,然後要離終點越來越近
- 判斷比賽是否結束
- 打印出勝利者
- 龜兔賽跑開始
- 故事中是烏龜贏的,兔子需要睡覺,所以我們來模擬兔子睡覺
- 終於,烏龜贏得比賽
package com.wang.multiThread; //模擬龜兔賽跑 public class Race implements Runnable { //勝利者 private static String winner; @Override public void run() { for (int i = 0; i <= 1000; i++) { //模擬兔子休息 if (Thread.currentThread().getName().equals("兔子") && i%10 ==0){ try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } //判斷比賽是否結束 boolean flag = gameOver(i); //如果比賽結束了,就停止程式 if (flag) { break; } System.out.println(Thread.currentThread().getName() + "-->跑了" + i + "步"); } } //判斷是否完成比賽 private boolean gameOver(int steps) { //判斷是否有勝利者 if (winner != null) { //已經存在勝利者了 return true; } { if (steps >= 1000) { winner = Thread.currentThread().getName(); System.out.println("winner is:" + winner); return true; } } return false; } public static void main(String[] args) { Race race = new Race(); new Thread(race, "兔子").start(); new Thread(race, "烏龜").start(); } }