使用Java语言编写用两个线程加速计算1*2*...*100的结果的程序。
时间: 2023-12-03 10:02:47 浏览: 231
Java实现多线程轮流打印1-100的数字操作
以下是使用Java语言编写的用两个线程加速计算1*2*...*100的结果的程序:
```java
public class Main {
public static void main(String[] args) throws InterruptedException {
// 创建两个线程
Thread t1 = new FactorialThread(1, 50);
Thread t2 = new FactorialThread(51, 100);
// 启动两个线程
t1.start();
t2.start();
// 等待两个线程执行完毕
t1.join();
t2.join();
// 输出计算结果
System.out.println(FactorialThread.getResult());
}
}
class FactorialThread extends Thread {
private static long result = 1;
private int start;
private int end;
public FactorialThread(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public void run() {
for (int i = start; i <= end; i++) {
result *= i;
}
}
public static long getResult() {
return result;
}
}
```
程序中创建了两个线程,分别计算1到50和51到100的阶乘。在主线程中启动两个子线程,并等待两个子线程执行完毕后输出计算结果。在每个子线程中,使用循环计算阶乘,并将结果保存在静态变量result中。最后通过getResult方法获取计算结果。
阅读全文