Java入门作业15 - 多线程基础 第3关:使用多线程方式求累加和
时间: 2024-02-11 16:07:08 浏览: 88
好的,我可以帮你解答关于Java多线程的问题。针对你的问题,可以使用多线程方式求累加和,具体实现如下:
```java
public class SumThread extends Thread {
private int start;
private int end;
private int sum;
public SumThread(int start, int end) {
this.start = start;
this.end = end;
this.sum = 0;
}
public int getSum() {
return sum;
}
@Override
public void run() {
for (int i = start; i <= end; i++) {
sum += i;
}
}
}
```
在主函数中,我们可以创建多个线程,每个线程计算一部分的累加和,最后将每个线程计算的结果相加即可得到最终的累加和。具体实现如下:
```java
public class Main {
private static final int N = 1000;
private static final int THREAD_NUM = 10;
public static void main(String[] args) {
int sum = 0;
SumThread[] threads = new SumThread[THREAD_NUM];
for (int i = 0; i < THREAD_NUM; i++) {
threads[i] = new SumThread(N / THREAD_NUM * i + 1, N / THREAD_NUM * (i + 1));
threads[i].start();
}
for (int i = 0; i < THREAD_NUM; i++) {
try {
threads[i].join();
sum += threads[i].getSum();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("sum = " + sum);
}
}
```
在上面的代码中,我们将累加的范围分成了10个部分,每个线程计算其中的一部分,最后将计算结果相加得到最终的累加和。
希望能够帮到你,如果还有其他问题,可以随时问我。
阅读全文