python多CPU计算实例分析
时间: 2024-09-20 12:07:49 浏览: 40
Python 提供了多种库来利用多 CPU 核心进行并行计算,其中最常用的是 `multiprocessing` 和 `concurrent.futures`。以下是两个简单的例子:
1. **multiprocessing** 库:
使用 `Pool` 类可以创建进程池,它可以在多个进程中同时运行任务。例如:
```python
import multiprocessing
def worker(num):
""" 这是一个代表每个进程的任务 """
print(f"Worker {num} is running.")
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=4) # 创建4个进程
numbers = [1, 2, 3, 4, 5] # 待处理的任务列表
pool.map(worker, numbers) # 并行执行map函数
pool.close() # 关闭连接,不再接受新的请求
pool.join() # 等待所有进程完成
```
在这个例子中,`worker` 函数会在不同的进程中并行执行。
2. **concurrent.futures** 库:
`ThreadPoolExecutor` 更加简洁易用,适合处理大量小任务。例如:
```python
from concurrent.futures import ThreadPoolExecutor
def worker(num):
print(f"Worker {num} started.")
with ThreadPoolExecutor(max_workers=4) as executor:
future_to_num = {executor.submit(worker, i): i for i in range(1, 6)}
for future in futures.as_completed(future_to_num):
num = future_to_num[future]
try:
future.result()
except Exception as exc:
print(f"Exception raised: {exc}")
```
这里,`ThreadPoolExecutor` 创建了一个线程池,通过 `submit` 函数提交任务。
阅读全文