在Java中多线程模拟百米赛跑场景
时间: 2024-09-07 22:04:44 浏览: 75
在Java中,我们可以使用多线程模拟百米赛跑场景,让几个“运动员”(线程)同时开始比赛。这通常通过创建Thread对象来代表每个参赛者,并重写start()方法启动它们。这里是一个简单的例子:
```java
class Runner implements Runnable {
private String name;
private int distance;
public Runner(String name, int distance) {
this.name = name;
this.distance = distance;
}
@Override
public void run() {
System.out.println(name + " 开始跑了,距离:" + distance + "m");
// 模拟跑步过程,可以添加随机时间延迟
try {
Thread.sleep((int)(Math.random() * 500)); // 随机睡眠1到5秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(name + " 跑完,总用时:" + distance + "m / 秒");
}
}
public class Main {
public static void main(String[] args) {
Thread[] runners = new Thread[5]; // 创建五个参赛者
for (int i = 0; i < runners.length; i++) {
runners[i] = new Thread(new Runner("参赛者" + (i+1), 100));
}
for (Thread runner : runners) { // 同时启动所有运动员
runner.start();
}
}
}
```
在这个场景中,每条线程都代表一个运动员,run()方法包含了他们的运动过程,包括起跑、运行以及完成后的信息输出。通过start()方法,他们会被调度到不同的时间片上,仿佛是在并行进行比赛。
阅读全文