定义继承Thread的类 改写类的run方法,要求每150毫秒打印一次线程名 在main中3次实例化这个类,并调用,同时注意显示的结果
时间: 2024-10-04 21:04:56 浏览: 36
在Java中,你可以定义一个继承自`Thread`的类,通常我们称之为"自定义线程",来创建并控制自己的线程行为。下面是一个简单的例子:
```java
public class CustomThread extends Thread {
private String threadName;
// 构造函数中设置线程名称
public CustomThread(String name) {
threadName = name;
}
// 重写Thread的run()方法,这里我们设置了每150毫秒打印一次线程名称
@Override
public void run() {
while (true) {
System.out.println("当前线程名:" + threadName);
try {
// 使用sleep方法暂停线程执行,150毫秒后自动唤醒
Thread.sleep(150);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// 创建并启动三个CustomThread实例
CustomThread thread1 = new CustomThread("Thread1");
thread1.start();
CustomThread thread2 = new CustomThread("Thread2");
thread2.start();
CustomThread thread3 = new CustomThread("Thread3");
thread3.start();
// 主线程在这里等待,直到所有自定义线程结束
for (Thread t : Thread.getAllStackTraces().keySet()) {
if (!t.isAlive()) {
System.out.println("线程 " + t.getName() + " 已经结束");
}
}
}
}
```
在这个例子中,`CustomThread`类继承了`Thread`,每个新实例都会有自己的线程名,并通过`run()`方法每150毫秒打印一次线程名。在`main`方法中,我们创建了三个`CustomThread`的实例并开始它们,当主线程退出前会检查所有的自定义线程是否已经结束。
阅读全文