创建两个线程,线程一的工作任务是计算0-100中偶数的票 加和,线程二的任务是计算0-100中奇数的票加和,主线 程main需要完成0-100的票加和的任务,main中不允许自 行计算0-100的票加和,需要合理调用相应功能的线程完 成它的任务。用java实现
时间: 2024-10-13 21:05:17 浏览: 27
在Java中,可以使用`Thread`类以及`Runnable`接口来创建并管理这两个线程。首先,你需要定义一个实现了`Runnable`接口的类,分别负责计算偶数和奇数之和:
```java
public class SumCalculator implements Runnable {
private int start;
private int end;
private int sum;
public SumCalculator(int start, int end) {
this.start = start;
this.end = end;
this.sum = 0;
}
// 计算范围内的数值和
@Override
public void run() {
if (start % 2 == 0) { // 如果是偶数
for (int i = start; i <= end; i += 2) {
sum += i;
}
} else { // 否则是奇数
for (int i = start + 1; i <= end; i += 2) {
sum += i;
}
}
}
// 获取结果
public int getSum() {
return sum;
}
}
```
然后,在`main`函数中创建并启动这两个线程:
```java
public class Main {
public static void main(String[] args) {
Thread evenThread = new Thread(new SumCalculator(0, 50));
Thread oddThread = new Thread(new SumCalculator(1, 99));
// 启动线程
evenThread.start();
oddThread.start();
try {
// 等待两个线程执行完毕
evenThread.join();
oddThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 主线程获取并打印结果
int totalSum = evenThread.getSum() + oddThread.getSum();
System.out.println("Total sum of even numbers: " + totalSum);
}
}
```
这个程序中,`evenThread`负责计算0到50之间的偶数和,`oddThread`负责计算1到99之间的奇数和。当这两个线程执行结束后,主线程通过`getSum()`方法获取它们的结果并相加,得到0-100的总和。注意,`join()`方法用于等待线程执行结束。
阅读全文