java程序:利用多线程技术模拟出龟兔赛跑的场面,设计一个线程类模拟参与赛跑的角色,创建该类的两个对象分别代表乌龟和兔子,兔子跑速快,但在中间休息的睡眠时间长些。到终点线程运行结束。
时间: 2024-05-10 07:14:43 浏览: 116
以下是一个简单的示例代码,实现了龟兔赛跑的场景:
```java
public class Race implements Runnable {
private static String winner; // 胜利者
private static boolean isGameOver = false; // 游戏是否结束
public void run() {
for (int i = 0; i <= 100 && !isGameOver; i++) {
// 模拟兔子休息
if (Thread.currentThread().getName().equals("兔子") && i % 10 == 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName() + "跑了" + i + "步");
// 判断比赛是否结束
if (i == 100) {
isGameOver = true;
winner = Thread.currentThread().getName();
System.out.println("比赛结束,胜利者是" + winner);
}
}
}
public static void main(String[] args) {
Race race = new Race();
Thread turtle = new Thread(race, "乌龟");
Thread rabbit = new Thread(race, "兔子");
turtle.start();
rabbit.start();
}
}
```
在这个示例中,我们创建了一个 `Race` 类实现了 `Runnable` 接口,可以被多个线程共享。在 `run()` 方法中,我们循环模拟龟兔赛跑的过程,每跑一步就输出当前跑步数,如果当前线程为兔子线程并且已经跑了 10 步,就让兔子线程休息 100 毫秒。当一个线程到达 100 步时,比赛结束,我们将 `isGameOver` 设为 `true`,并记录胜利者为该线程的名字。
在 `main()` 方法中,我们创建了两个线程分别代表乌龟和兔子,然后启动这两个线程。这两个线程都共享 `Race` 类,因此可以同时跑步。
阅读全文