编写10个线程,第一个线程从1加到10,第二个线程从11加20…第十个线程从91加到100,最后再把10个线程结果相加。java编写
时间: 2023-08-05 09:38:45 浏览: 44
好的,以下是Java代码实现:
```java
public class MultiThreadAddition {
private static final int THREAD_COUNT = 10;
private static final int NUM_PER_THREAD = 10;
public static void main(String[] args) throws InterruptedException {
Thread[] threads = new Thread[THREAD_COUNT];
AdditionThread[] additionThreads = new AdditionThread[THREAD_COUNT];
// 创建并启动10个加法线程
for (int i = 0; i < THREAD_COUNT; i++) {
additionThreads[i] = new AdditionThread(i * NUM_PER_THREAD + 1, (i + 1) * NUM_PER_THREAD);
threads[i] = new Thread(additionThreads[i]);
threads[i].start();
}
// 等待10个加法线程全部执行结束
for (int i = 0; i < THREAD_COUNT; i++) {
threads[i].join();
}
// 计算10个加法线程的结果之和
int sum = 0;
for (int i = 0; i < THREAD_COUNT; i++) {
sum += additionThreads[i].getResult();
}
System.out.println("1到100的和为:" + sum);
}
private static class AdditionThread implements Runnable {
private final int startNum;
private final int endNum;
private int result;
public AdditionThread(int startNum, int endNum) {
this.startNum = startNum;
this.endNum = endNum;
}
@Override
public void run() {
for (int i = startNum; i <= endNum; i++) {
result += i;
}
}
public int getResult() {
return result;
}
}
}
```
运行结果:
```
1到100的和为:5050
```