python多进程求素数个数
时间: 2023-06-27 12:02:42 浏览: 177
下面是一个使用多进程求素数个数的 Python 代码示例:
```python
import multiprocessing
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def count_primes(start, end):
count = 0
for i in range(start, end):
if is_prime(i):
count += 1
return count
if __name__ == '__main__':
num_processes = 4
num_range = 1000000
chunk_size = num_range // num_processes
pool = multiprocessing.Pool(processes=num_processes)
results = []
for i in range(num_processes):
start = i * chunk_size
end = start + chunk_size
result = pool.apply_async(count_primes, (start, end))
results.append(result)
count = 0
for result in results:
count += result.get()
print('Number of primes:', count)
```
这个代码使用 `multiprocessing` 模块创建了一个有四个进程的进程池。代码将要计算的范围划分为四个区间,每个进程计算一个区间内素数的个数。最终,主进程将所有进程的计算结果相加,得到素数的总个数。
阅读全文