
package com.pln.thread;public class Race implements Runnable{private String winner;@Overridepublic void run() {for (int i = 0; i <=100 ; i++) {// 让兔子睡觉if(Thread.currentThread().getName()=="兔子" && i%10 == 0){try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}// 如果flag等于true说明比赛结束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();}}
结果:
