用继承Thread类的方法实现一个多线程程序,该程序先后启动三个线程,每个线程首先打印出一条线程创建信息,然后休眠一个随机时间,最后打印出线程结束信息退出。Java实现
时间: 2023-08-31 21:35:43 浏览: 161
### 回答1:
在 Java 中,可以使用继承 `Thread` 类的方法来实现多线程程序。下面是一个简单的例子:
```java
import java.util.Random;
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程创建信息: " + getName());
try {
// 休眠一个随机时间
Random random = new Random();
int sleepTime = random.nextInt(1000);
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程结束信息: " + getName());
}
}
```
然后,我们可以在主函数中创建三个线程并启动它们:
```java
public class Main {
public static void main(String[] args) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
MyThread t3 = new MyThread();
t1.start();
t2.start();
t3.start();
}
}
```
运行结果可能类似于:
```
线程创建信息: Thread-0
线程创建信息: Thread-1
线程创建信息: Thread-2
线程结束信息: Thread-2
线程结束信息: Thread-1
线程结束信息: Thread-0
```
注意,上面的代码只是给出了一个简单的例子,在实际应用中还需要注意许多其他因素,例如线程安全、同步等。
### 回答2:
以下是用继承Thread类实现一个多线程程序的示例:
```java
import java.util.Random;
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程 " + getName() + " 创建成功");
Random random = new Random();
int sleepTime = random.nextInt(5000);
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程 " + getName() + " 结束,休眠时间:" + sleepTime + "毫秒");
}
public static void main(String[] args) {
MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
MyThread thread3 = new MyThread();
thread1.start();
thread2.start();
thread3.start();
}
}
```
该程序使用继承Thread类的方法创建了一个多线程程序。在每个线程的run()方法中,首先打印出线程的创建信息,然后休眠一个随机时间(最大为5秒),最后打印出线程结束信息。在main()方法中,我们创建了三个线程对象,并通过调用start()方法启动这三个线程。
运行该程序,可以看到类似以下的输出:
```
线程 Thread-0 创建成功
线程 Thread-2 创建成功
线程 Thread-1 创建成功
线程 Thread-1 结束,休眠时间:1234毫秒
线程 Thread-0 结束,休眠时间:2901毫秒
线程 Thread-2 结束,休眠时间:2340毫秒
```
从输出结果可以看出,每个线程都成功创建,并且按照创建的顺序依次打印出线程的创建信息和结束信息。每个线程结束后,休眠时间也会被打印出来。
### 回答3:
在Java中,可以通过继承Thread类来实现一个多线程程序。以下是实现该程序的代码:
代码如下:
```
import java.util.Random;
class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程" + this.getName() + "创建成功");
try {
// 休眠随机时间
Random random = new Random();
int sleepTime = random.nextInt(5000); // 生成0-5000的随机数
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程" + this.getName() + "结束");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
MyThread thread3 = new MyThread();
thread1.start();
thread2.start();
thread3.start();
}
}
```
以上代码中,通过继承Thread类并重写run方法,实现了一个名为MyThread的线程类。在run方法中,首先打印出线程创建信息,然后通过`Thread.sleep()`方法使线程休眠一个随机时间。接着,在这个休眠时间之后,打印出线程结束信息并退出。
在主函数中,创建了三个MyThread对象,并分别启动这三个线程。每个线程执行的内容都是一样的,但启动的顺序和休眠的时间是随机的。当程序运行时,会同时启动三个线程,并以随机的顺序执行,并且每个线程都会打印出创建信息和结束信息。
阅读全文