python 中是用进程池
时间: 2023-07-24 21:15:06 浏览: 41
Python 中的进程池是一种并发编程的方式,它可以在多个进程之间共享任务,实现并行执行。
使用进程池可以避免频繁地创建和销毁进程,从而提高程序的执行效率。Python 的 `multiprocessing` 模块提供了进程池的支持,可以通过 `Pool()` 函数创建一个进程池对象,然后使用该对象的 `apply()`、`map()`、`apply_async()`、`map_async()` 等方法,来实现并行任务的执行。
其中,`apply()` 和 `map()` 方法是同步执行任务的方法,即进程池中的进程会按照顺序执行任务,直到所有任务执行完毕;`apply_async()` 和 `map_async()` 方法是异步执行任务的方法,即进程池中的进程会同时执行多个任务,在任务执行完毕后,可以通过 `get()` 方法获取任务的执行结果。
下面是一个简单的使用进程池的例子:
```
import multiprocessing
def worker(num):
print('Worker %d is running.' % num)
if __name__ == '__main__':
# 创建进程池
pool = multiprocessing.Pool(processes=4)
# 启动进程池,执行任务
for i in range(10):
pool.apply_async(worker, (i,))
# 等待所有任务执行完毕
pool.close()
pool.join()
print('All workers have finished.')
```
在这个例子中,我们首先创建了一个进程池对象 `pool`,然后使用 `apply_async()` 方法向进程池中提交任务。在提交完所有任务后,我们调用了 `pool.close()` 方法来关闭进程池,然后使用 `pool.join()` 方法等待所有任务执行完毕。最后,我们打印了一条消息,表示所有任务已经执行完毕。