创建简单的程序,创建三个线程,每个线程应当显示它从开始到目前为止累计运行时间(可以考虑使用Date类或Calendar类)。
时间: 2023-11-27 07:51:55 浏览: 43
以下是一个使用Java的示例程序,其中创建了三个线程并显示每个线程的运行时间:
```java
import java.util.Calendar;
public class ThreadExample {
public static void main(String[] args) {
Thread t1 = new Thread(new MyThread("Thread 1"));
Thread t2 = new Thread(new MyThread("Thread 2"));
Thread t3 = new Thread(new MyThread("Thread 3"));
t1.start();
t2.start();
t3.start();
}
static class MyThread implements Runnable {
private String name;
private Calendar startTime;
public MyThread(String name) {
this.name = name;
startTime = Calendar.getInstance();
}
@Override
public void run() {
while(true) {
Calendar currentTime = Calendar.getInstance();
long elapsedTime = currentTime.getTimeInMillis() - startTime.getTimeInMillis();
System.out.println(name + " has been running for " + elapsedTime + " milliseconds");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
```
在这个程序中,我们创建了一个静态内部类`MyThread`,它实现了`Runnable`接口。在`MyThread`的构造函数中,我们初始化了线程的名称和开始时间。在`run`方法中,我们使用`Calendar`类获取当前时间,并计算从开始时间到当前时间的时间差。然后,我们输出线程名称和已运行时间,并让线程睡眠1秒钟,以便我们可以看到输出。由于`while`循环的条件为`true`,因此线程将一直运行下去。在`main`方法中,我们创建了三个`MyThread`实例,并使用`Thread`类的`start`方法启动它们。
阅读全文