本文共 1238 字,大约阅读时间需要 4 分钟。
新创一个类
public class Race implements Runnable { private static String winner; @Override public void run() { for (int i = 1; i <= 100; i++) { if (Thread.currentThread().getName().equals("兔子") && i % 10 == 0) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } if (gameOver(i)) { break; } System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步"); } } private boolean gameOver(int steps) { if (winner != null) { return true; } if (steps >= 100) { 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();}运行结果
通过代码实现了一个简单的赛跑逻辑,两个参与者分别是"兔子"和"乌龟"。在运行过程中,兔子每跑完10步会暂停10毫秒,而乌龟则一直保持稳定的速度。最终的胜利者将通过`gameOver`方法自动判定,当某个参与者完成全部步数或首先完成比赛时,游戏将结束。
在实际运行中,乌龟通常会比兔子先完成比赛,因为兔子需要定期暂停,增加了额外的时间消耗。通过这种方式,可以直观地观察到不同参与者的速度差异以及暂停策略对最终结果的影响。
转载地址:http://nieq.baihongyu.com/