一、照样我们创建一个线程类来实现Runnable接口,重写run方法
定义了一个静态变量 winner:胜利者
在run方法中模拟赛道长度为100,并且输出实时的比赛情况
二、定义方法,判断比赛完成的情况,创建形参step:步数来方便之后的调用
判断是否有胜利者 若有就放回true结束 没有就是false
步数若超过100也代表结束,那边就把这个Thread线程的名字赋值给winner变量,并且进行打印 返回true结束比赛
三、模拟兔子睡觉了
判断gameOver()方法返回的值,既游戏是否结束,结束了就没必要继续循环了可以跳出循环
用Thread.sleep 模拟延时方法来模拟兔子睡觉,并抛出异常
四、最后用main测试 实例化对象是一条赛道 两条线程是两个动物
五、结果
因为模拟了兔子睡觉,所以乌龟会一直赢,如果兔子没有用延时方法睡觉,那么也还是看cpu调度,二者都有可能获胜。