编写一个Java源程序:编写一个Java源程序: (1)通过实现Runnable接口的类对象作为参数,创建“输入线程”和“输出线程”。 (2)“输入线程”负责输入两个复数。(3)“输出线程”负责输出两个复数的和。 (4)要求每输入两个复数,就要输出求和的结果,依此进行下去,直到任务结束
时间: 2023-02-05 19:56:07 浏览: 39
JAVA源程序
4星 · 用户满意度95%
这是一个 Java 程序的示例,实现了您所说的功能:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建“输入线程”和“输出线程”
InputThread inputThread = new InputThread();
OutputThread outputThread = new OutputThread();
Thread input = new Thread(inputThread);
Thread output = new Thread(outputThread);
// 启动线程
input.start();
output.start();
}
}
// 实现“输入线程”的类
class InputThread implements Runnable {
// 使用共享变量存储两个复数
static double[] complex = new double[4];
static boolean finished = false;
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
while (!finished) {
// 输入两个复数
System.out.println("请输入第一个复数的实部和虚部:");
complex[0] = scanner.nextDouble();
complex[1] = scanner.nextDouble();
System.out.println("请输入第二个复数的实部和虚部:");
complex[2] = scanner.nextDouble();
complex[3] = scanner.nextDouble();
// 将 finished 设置为 true,让输出线程输出结果
finished = true;
// 等待输出线程输出结果
while (finished) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
// 实现“输出线程”的类
class OutputThread implements Runnable {
@Override
public void run() {
while (true) {
// 当 finished 为 true 时,输出两个复数的和
while (InputThread.finished) {
double real = InputThread.complex[0] + InputThread.complex[2];
double imag = InputThread.complex[1] + InputThread.complex[3];
System.out.println("两个复数的和为:" + real + "+" + imag + "i");
阅读全文