python多进程使用apply_async的使用方法详解
作者:IT之一小佬 时间:2022-11-14 16:08:50
前言:
python在同一个线程中多次执行同一方法时,该方法执行耗时较长且每次执行过程及结果互不影响,如果只在主进程中执行,效率会很低,因此使用multiprocessing.Pool(processes=n)及其apply_async()方法提高程序执行的并行度从而提高程序的执行效率,其中processes=n为程序并行执行的进程数。
apply_async是异步非阻塞式,不用等待当前进程执行完毕,随时跟进操作系统调度来进行进程切换,即多个进程并行执行,提高程序的执行效率。
示例代码1:
import time
import random
import multiprocessing
def func(x):
ts = random.randint(1, 10)
time.sleep(ts)
print(f'{x}执行完毕!耗时{ts}s')
if __name__ == '__main__':
pool = multiprocessing.Pool(6)
for i in range(6):
print(f"开始执行第{i}个任务...")
pool.apply_async(func, args=(i, ))
pool.close()
pool.join()
运行结果:
在使用apply_async()方法接收多个参数的方法时,在任务方法中正常定义多个参数,参数以元组形式传入即可 但是给apply_async()方法传入多个值获取多个迭代结果时就会报错,因为该方法只能接收一个值,所以可以将该方法放入一个列表生成式中。
示例代码2:
import multiprocessing
def func(x):
return x ** 2
if __name__ == '__main__':
pool = multiprocessing.Pool()
res = [pool.apply_async(func, (i, )) for i in range(6)]
print([x for x in res])
print([x.get() for x in res])
pool.close()
pool.join()
运行结果:
注意:join()等待所有子进程结束后再运行,使用join()前先使用close()关闭它。
来源:https://blog.csdn.net/weixin_44799217/article/details/126860696
标签:python,多进程,apply,async
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
关于reflow
2007-09-23 13:30:00
php实现通过cookie换肤的方法
2023-11-23 17:57:07
Golang使用lua脚本实现redis原子操作
2023-09-03 05:55:20
![](https://img.aspxhome.com/file/2023/7/101057_0s.png)
python实现门限回归方式
2023-12-27 09:19:06
![](https://img.aspxhome.com/file/2023/8/79668_0s.jpg)
python生成器的使用方法
2021-12-03 22:40:49
php基于协程实现异步的方法分析
2023-06-11 10:08:39
js图片水平翻转后垂直翻反转的特效代码
2009-03-06 15:33:00
Python全栈之进程和守护进程
2021-11-25 18:05:44
![](https://img.aspxhome.com/file/2023/1/70781_0s.png)
实例代码讲解Python 线程池
2023-07-19 03:53:04
Python 的Json 模块编码详解
2023-03-19 08:29:15
TensorFlow 实战之实现卷积神经网络的实例讲解
2022-11-16 20:35:15
这么多的 Oracle 性能工具
2008-06-04 11:20:00
python爬取分析超级大乐透历史开奖数据第1/2页
2021-03-15 17:02:59
![](https://img.aspxhome.com/file/2023/3/72013_0s.png)
Sql语句优化注意
2009-10-31 13:15:00
Python入门教程4. 元组基本操作 <font color=red>原创</font>
2021-01-12 09:53:21
可输入的select代码
2009-12-26 18:25:00
javascript面向对象编程(三)
2008-03-07 13:19:00
基于Python实现文件的压缩与解压缩
2023-12-24 09:07:58
![](https://img.aspxhome.com/file/2023/9/63599_0s.jpg)
php模板引擎技术简单实现
2023-11-14 13:28:37
Python SVM(支持向量机)实现方法完整示例
2021-06-09 14:20:34
![](https://img.aspxhome.com/file/2023/7/75947_0s.png)