用Java编写一个由多线程实现的龟兔赛跑
时间: 2023-06-02 18:06:34 浏览: 69
好的,这是一个很有趣的问题。我可以为您提供以下的Java代码:
```java
public class Race {
public static void main(String[] args) {
Tortoise tortoise = new Tortoise();
Hare hare = new Hare();
// 启动线程
tortoise.start();
hare.start();
// 等待线程结束
try {
tortoise.join();
hare.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Tortoise extends Thread {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("乌龟跑了 " + i + " 步");
// 休眠一段时间
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("乌龟到达终点!");
}
}
class Hare extends Thread {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("兔子跑了 " + i + " 步");
// 睡觉一段时间
if (i % 10 == 0) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
System.out.println("兔子到达终点!");
}
}
```
在这个代码中,我们先定义了两个类,`Tortoise`表示乌龟,`Hare`表示兔子,每个类都继承了`Thread`类,这样我们就可以通过多线程来模拟赛跑了。
在`main`方法中,我们首先创建了乌龟和兔子的对象,然后启动了它们的线程,最后等待线程结束。
`Tortoise`和`Hare`类的`run`方法中,我们都使用了一个循环来模拟跑步,当然,兔子和乌龟的速度不一样,我们就用`Thread.sleep`方法来让它们在跑步的过程中休息一段时间。
最后,当某一方跑完100步后,就输出该选手已经到达终点了。
我希望这段代码可以帮到您。