写一个java函数通过继承实现多线程,在主方法中输入N,然后通过线程输出从0到N的整数。
时间: 2024-11-22 12:36:17 浏览: 17
在Java中,你可以创建一个基类ThreadDemo,让其继承自Thread类,并覆盖run()方法来实现多线程。然后创建一个子类MyThread,继承ThreadDemo并重写printNumbers()方法。在main方法中,你可以创建一个数组来存储MyThread实例,根据用户输入的N来创建相应数量的线程。
这是一个简单的示例:
```java
public class ThreadDemo extends Thread {
private int number;
public ThreadDemo(int number) {
this.number = number;
}
@Override
public void run() {
printNumbers();
}
protected void printNumbers() {
for (int i = 0; i <= number; i++) {
System.out.println("Thread " + Thread.currentThread().getId() + ": " + i);
}
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数N: ");
int N = scanner.nextInt();
Thread[] threads = new Thread[N];
for (int i = 0; i < N; i++) {
threads[i] = new MyThread(i);
threads[i].start(); // 启动线程
}
// 等待所有线程完成
for (Thread thread : threads) {
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class MyThread extends ThreadDemo {
public MyThread(int number) {
super(number); // 调用父类构造函数传入数字
}
}
```
当你运行这个程序时,每个新启动的线程会按照它们各自的顺序打印从0到N的数字。每个线程都有自己的独立生命周期和状态。
阅读全文