使用java通过2个线程实现 案例: 一个线程计算1~10000之间所有素数的和 一个线程计算10000~20000之间所有素数的个数 最终打印结果
时间: 2024-01-22 08:20:10 浏览: 86
以下是通过两个线程实现计算1~10000之间所有素数的和和计算10000~20000之间所有素数的个数,最终打印结果的Java代码:
```java
public class PrimeNumberThread extends Thread {
private int start;
private int end;
private long result;
public PrimeNumberThread(int start, int end) {
this.start = start;
this.end = end;
this.result = 0;
}
public long getResult() {
return result;
}
@Override
public void run() {
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
result += i;
}
}
}
private boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
PrimeNumberThread thread1 = new PrimeNumberThread(1, 10000);
PrimeNumberThread thread2 = new PrimeNumberThread(10001, 20000);
thread1.start();
thread2.start();
thread1.join();
thread2.join();
long sum = thread1.getResult() + thread2.getResult();
System.out.println("1~10000之间所有素数的和为:" + thread1.getResult());
System.out.println("10001~20000之间所有素数的个数为:" + thread2.getResult());
System.out.println("总和为:" + sum);
}
}
```
在这个例子中,我们通过两个 PrimeNumberThread 线程来计算不同范围内的素数和个数,最终将结果相加并打印输出。在 PrimeNumberThread 类中,我们使用了 isPrime() 方法来判断一个数是否为素数,并在 run() 方法中遍历范围内的每个数,将素数累加到 result 中。在 Main 类中,我们创建了两个 PrimeNumberThread 线程,并通过 start() 方法启动它们。在两个线程执行完成后,我们使用 join() 方法来等待它们的执行结果,然后将结果相加并打印输出。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)