image.png

    1. package com.pln.thread;
    2. public class Race implements Runnable{
    3. private String winner;
    4. @Override
    5. public void run() {
    6. for (int i = 0; i <=100 ; i++) {
    7. // 让兔子睡觉
    8. if(Thread.currentThread().getName()=="兔子" && i%10 == 0){
    9. try {
    10. Thread.sleep(200);
    11. } catch (InterruptedException e) {
    12. e.printStackTrace();
    13. }
    14. }
    15. // 如果flag等于true说明比赛结束
    16. Boolean flag = gameOver(i);
    17. if(flag){
    18. break;
    19. }
    20. System.out.println(Thread.currentThread().getName()+"--->跑了"+i+"步");
    21. }
    22. }
    23. // 判断比赛结束
    24. private boolean gameOver(int steps){
    25. if(winner != null){
    26. return true;
    27. }{
    28. if(steps>=100){
    29. winner = Thread.currentThread().getName();
    30. System.out.println("winner is "+winner);
    31. return true;
    32. }
    33. }
    34. return false;
    35. }
    36. public static void main(String[] args) {
    37. Race race = new Race();
    38. new Thread(race,"兔子").start();
    39. new Thread(race,"乌龟").start();
    40. }
    41. }

    结果:
    image.png