//模拟龟兔赛跑 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(20);//让线程休息20毫秒 } 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); return true; } } return false; } public static void main(String[] args) { race t = new race(); new Thread(t,"兔子").start(); new Thread(t,"乌龟").start(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)