Python多任务(四)-----进程池Pool
2019-02-15 11:33
120 查看
Python中的进程池
进程池Pool
- 当需要创建的子进程数量不多,可以直接利用multiprocessing中的Process动态的生成多个进程。
- 但如果是上百个甚至上千个目标,手动的去创建线程工作量很大,此时就可以用到multiprocessing模块提供的Pool方法。
- 我们应该对实际的应用场景来判断是否使用进程池。
- 初始化 Pool 时,可以指定一个最大的进程数,当有新的请求提交到Pool中时: 如果池还没满,那么就会创建一个新的进程来执行该请求。
- 如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行该请求
-
一般情况,主进程会等待子进程结束后才会结束。
-
apply(func[, args[, kwds]])方法:
不建议使用
-
异步非阻塞式
-
关闭进程池,表示不能在向进程池中添加新的请求(进程)
-
等待进程池中的所有进程执行结束,必须放在close()之后
-
导入multiprocessing模块中的Pool方法
-
防止在子进程没结束时,主进程的结束导致所有子进程立刻结束。
from multiprocessing import Pool def text(msg): for i in range(3): print("(" + str(msg) + "):" + str(i)) if __name__ == "__main__": # 创建一个线程池,最大进程数为3 pool = Pool(3) for i in range(10): # 向进程池中添加任务 pool.apply_async(text, (i, )) print("---start---") # 关闭进程池,表示不能在往进程池中添加进程 pool.close() # 等待进程池中的所有进程执行结束 pool.join() print("--- end ---")
相关文章推荐
- Python-进程-进程池pool
- python进程池:multiprocessing.pool
- python进程池pool的starmap的使用
- python进程池:multiprocessing.pool
- python补充之Multiprocessing(四)进程池Pool
- python多进程中的进程池pool
- Python多进程并发操作中进程池Pool的应用<转>
- Python 多进程并发操作中进程池Pool的实例
- 进程池Pool(python版)
- python进程池:multiprocessing.pool
- PYTHON多进程编码结束之进程池POOL
- python进程池:multiprocessing.pool
- Python 进程池 Pool
- Python多进程并发操作中进程池Pool的应用
- python进程池:multiprocessing.pool
- Python多进程并发操作中进程池Pool的应用
- Python进程池pool使用方法以及map函数用法
- python进程池:multiprocessing.pool
- python中的进程池Pool
- python:Process、join()、进程的创建Process子类、进程池Pool、将一个文件夹的内容copy到另一个文件夹