本关任务:编写10个线程,第一个线程从1加到10,第二个线程从11加到20,……,第十个线程从91加到100。最后再把十个线程结果相加后输出。
时间: 2023-08-05 17:16:36 浏览: 101
好的,根据你的需求,我们可以编写如下代码:
```java
public class Main {
private static final int THREAD_NUM = 10;
private static final int N = 100;
private static final int RANGE = N / THREAD_NUM;
public static void main(String[] args) {
int sum = 0;
SumThread[] threads = new SumThread[THREAD_NUM];
for (int i = 0; i < THREAD_NUM; i++) {
int start = i * RANGE + 1;
int end = (i + 1) * RANGE;
threads[i] = new SumThread(start, end);
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);
}
}
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;
}
}
}
```
在上面的代码中,我们首先定义了常量`THREAD_NUM`表示线程数量,常量`N`表示累加范围,常量`RANGE`表示每个线程需要计算的范围。然后,在主函数中,我们创建了`THREAD_NUM`个线程,每个线程计算一部分的累加和。最后,我们将每个线程计算的结果相加得到最终的累加和,并输出。
希望能够帮到你,如果还有其他问题,可以随时问我。
阅读全文