package com.wuming.demo01; public class Race implements Runnable{ /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the thread causes the object's * <code>run</code> method to be called in that separately executing * thread. * <p> * The general contract of the method <code>run</code> is that it may * take any action whatsoever. * * @see Thread#run() */ //胜利者 private static String winner; @Override public void run() { for (int i = 0; i <=100; i++) { //模拟兔子休息 if (Thread.currentThread().getName().equals("兔子")&& i%20==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>=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(); } }
乌龟-->跑了0步
乌龟-->跑了1步
乌龟-->跑了2步
乌龟-->跑了3步
乌龟-->跑了4步
乌龟-->跑了5步
乌龟-->跑了6步
乌龟-->跑了7步
乌龟-->跑了8步
乌龟-->跑了9步
乌龟-->跑了10步
乌龟-->跑了11步
乌龟-->跑了12步
乌龟-->跑了13步
乌龟-->跑了14步
乌龟-->跑了15步
乌龟-->跑了16步
乌龟-->跑了17步
乌龟-->跑了18步
乌龟-->跑了19步
乌龟-->跑了20步
乌龟-->跑了21步
乌龟-->跑了22步
兔子-->跑了0步
乌龟-->跑了23步
兔子-->跑了1步
乌龟-->跑了24步
兔子-->跑了2步
乌龟-->跑了25步
兔子-->跑了3步
乌龟-->跑了26步
兔子-->跑了4步
乌龟-->跑了27步
兔子-->跑了5步
乌龟-->跑了28步
兔子-->跑了6步
乌龟-->跑了29步
兔子-->跑了7步
乌龟-->跑了30步
兔子-->跑了8步
乌龟-->跑了31步
兔子-->跑了9步
乌龟-->跑了32步
兔子-->跑了10步
乌龟-->跑了33步
兔子-->跑了11步
乌龟-->跑了34步
兔子-->跑了12步
乌龟-->跑了35步
兔子-->跑了13步
乌龟-->跑了36步
兔子-->跑了14步
乌龟-->跑了37步
兔子-->跑了15步
乌龟-->跑了38步
兔子-->跑了16步
乌龟-->跑了39步
兔子-->跑了17步
乌龟-->跑了40步
兔子-->跑了18步
乌龟-->跑了41步
兔子-->跑了19步
乌龟-->跑了42步
乌龟-->跑了43步
乌龟-->跑了44步
乌龟-->跑了45步
乌龟-->跑了46步
乌龟-->跑了47步
乌龟-->跑了48步
乌龟-->跑了49步
乌龟-->跑了50步
乌龟-->跑了51步
乌龟-->跑了52步
乌龟-->跑了53步
乌龟-->跑了54步
乌龟-->跑了55步
乌龟-->跑了56步
乌龟-->跑了57步
乌龟-->跑了58步
乌龟-->跑了59步
乌龟-->跑了60步
乌龟-->跑了61步
乌龟-->跑了62步
乌龟-->跑了63步
乌龟-->跑了64步
乌龟-->跑了65步
乌龟-->跑了66步
乌龟-->跑了67步
乌龟-->跑了68步
乌龟-->跑了69步
乌龟-->跑了70步
乌龟-->跑了71步
乌龟-->跑了72步
乌龟-->跑了73步
乌龟-->跑了74步
乌龟-->跑了75步
乌龟-->跑了76步
乌龟-->跑了77步
乌龟-->跑了78步
乌龟-->跑了79步
乌龟-->跑了80步
乌龟-->跑了81步
乌龟-->跑了82步
兔子-->跑了20步
乌龟-->跑了83步
兔子-->跑了21步
乌龟-->跑了84步
兔子-->跑了22步
乌龟-->跑了85步
兔子-->跑了23步
乌龟-->跑了86步
兔子-->跑了24步
乌龟-->跑了87步
乌龟-->跑了88步
乌龟-->跑了89步
乌龟-->跑了90步
乌龟-->跑了91步
乌龟-->跑了92步
乌龟-->跑了93步
乌龟-->跑了94步
乌龟-->跑了95步
乌龟-->跑了96步
乌龟-->跑了97步
乌龟-->跑了98步
乌龟-->跑了99步
winner is乌龟
兔子-->跑了25步