首页 > 编程语言 > 详细

python的多进程并行计算

时间:2020-11-27 09:44:48      阅读:36      评论:0      收藏:0      [点我收藏+]

1.multiprocessing.Pool用于多进程,multiprocessing.dummy.Pool用于多线程。多线程是假的并行,实际上还是串行。如果是计算占比比较大,用多进程;如果是I/O占比比较大,用多线程。

2.multiprocessing.Pool包含四个方法。其中:map、map_async用于同一个函数的多线程运行,参数可以用列表;apply、apply_async用于不同函数的多线程运行,但参数必须用元祖。

3.Pool可以不指定进程数量,可以实现动态的进程数量。如pool=Pool(5)可以用pool=Pool()代替。

4.如果是同一个函数的多进程并行,用如下代码:

1 from multiprocessing.dummy import Pool
2 pool = Pool()
3 my_fetchall = pool.map(func_name, paremeter_list)
4 pool.close()
5 pool.join()

5.如果是不同函数的多进程并行,用如下代码:

 1 from multiprocessing import Pool
 2 # 并行的数据准备
 3 arg_tup = (my_date, dwmc)
 4 fun_list = [get_xtxl, get_dyhd, get_yjzhlyl, get_jbzq, get_tjl, get_gkhgl, get_phhgl]
 5 
 6 # 创建进程池
 7 pool = Pool()
 8 
 9 # 逐个塞入进程
10 pool_list = [pool.apply_async(item, arg_tup) for item in fun_list]
11 
12 # 关闭进程池
13 pool.close()
14 pool.join()
15 
16 # 逐个获取结果
17 [my_xtxl, my_dyhd, my_yjzhlyl, my_jbzq, my_tjl, my_gkhgl, my_phhgl] = [item.get() for item in pool_list]

6.参考内容:https://www.cnblogs.com/ailiailan/p/11850710.html

python的多进程并行计算

原文:https://www.cnblogs.com/xinyangq/p/14046070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!