编写一个java程序,该程序由两个线程组成,第一个线程用来计算2~1000之间的质数个数,第二个线程用来计算1000~2000之间的质数个数。
时间: 2024-03-25 14:40:16 浏览: 50
第一个多线程程序-计算机网络原理[2007年版]教材自考4741(高清扫描版)
好的,下面是Java代码实现:
```java
public class PrimeCount implements Runnable {
private int start;
private int end;
public PrimeCount(int start, int end) {
this.start = start;
this.end = end;
}
public void run() {
int count = 0;
for (int i = start; i < end; i++) {
if (isPrime(i)) {
count++;
}
}
System.out.printf("在[%d, %d)范围内,共有%d个质数\n", start, end, count);
}
private boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) throws InterruptedException {
// 创建两个线程,分别计算2~1000和1000~2000的质数个数
Thread t1 = new Thread(new PrimeCount(2, 1000));
Thread t2 = new Thread(new PrimeCount(1000, 2000));
// 启动线程
t1.start();
t2.start();
// 等待线程执行完毕
t1.join();
t2.join();
}
}
```
程序中使用了两个线程,分别计算2~1000和1000~2000的质数个数。在每个线程中实现`run`方法来计算质数个数。使用`Thread`类创建线程对象,传入`PrimeCount`对象作为构造参数。最后使用`start`方法启动线程,`join`方法等待线程执行完毕。
注意,代码中的`isPrime`方法用于判断一个数是否为质数。
阅读全文