多线程,模拟龟兔赛跑

发布时间 2023-10-07 20:38:55作者: KukiHistory

一、照样我们创建一个线程类来实现Runnable接口,重写run方法

 

定义了一个静态变量 winner:胜利者  

在run方法中模拟赛道长度为100,并且输出实时的比赛情况

二、定义方法,判断比赛完成的情况,创建形参step:步数来方便之后的调用

 判断是否有胜利者 若有就放回true结束 没有就是false

步数若超过100也代表结束,那边就把这个Thread线程的名字赋值给winner变量,并且进行打印 返回true结束比赛

三、模拟兔子睡觉了

 判断gameOver()方法返回的值,既游戏是否结束,结束了就没必要继续循环了可以跳出循环

用Thread.sleep 模拟延时方法来模拟兔子睡觉,并抛出异常

四、最后用main测试  实例化对象是一条赛道  两条线程是两个动物

 五、结果

 因为模拟了兔子睡觉,所以乌龟会一直赢,如果兔子没有用延时方法睡觉,那么也还是看cpu调度,二者都有可能获胜。