用Java语言在项目中新建Test2.java,编写一多线程程序实现如下功能:第一个线程循环输出打印5个A,第二个线程循环输出5个B,第三个线程循环输出5个C。要求第二个线程要在第一个线程输出完成后才能开始输出,第三个线程要在第二个线程输出完成后才能开始输出,主线程最后输出“程序运行结束!”。
时间: 2024-02-22 12:58:29 浏览: 74
好的,下面是代码实现:
```
public class Test2 {
public static void main(String[] args) {
PrintThread A = new PrintThread("A", null);
PrintThread B = new PrintThread("B", A);
PrintThread C = new PrintThread("C", B);
try {
A.join();
B.join();
C.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("程序运行结束!");
}
}
class PrintThread extends Thread {
private String content;
private PrintThread preThread;
public PrintThread(String content, PrintThread preThread) {
this.content = content;
this.preThread = preThread;
start();
}
@Override
public void run() {
if (preThread != null) {
try {
preThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int i = 0; i < 5; i++) {
System.out.print(content);
}
}
}
```
其中,PrintThread 类继承了 Thread 类,表示可以作为一个线程来执行。它有两个成员变量,一个表示要输出的内容,一个表示前一个线程。
在 main 方法中,我们先创建了三个线程 A、B、C,其中 A 的前一个线程是 null,B 的前一个线程是 A,C 的前一个线程是 B。然后通过 join() 方法控制线程的执行顺序,保证第二个线程在第一个线程执行完之后才会开始执行,第三个线程在第二个线程执行完之后才会开始执行。
PrintThread 中的 run() 方法表示线程运行时要执行的操作,首先判断前一个线程是否已经执行完,如果没有执行完,则等待;如果已经执行完,则输出自己的内容。循环 5 次输出之后,线程结束。
最后在主线程中输出“程序运行结束!”即可。
阅读全文