1. 前言
现在cpu动不动就是6核12进程,计算能力越来越强,但是我们真的都用上了么?在跑python代码时,请打开你的后台监控,看看python的CPU占比。如果不做特殊处理(排除你调用的库),很有可能你的代码最高只能占用100%,资源利用率低下。
还有另外一个故事,当你的计算复杂度很高的时候,比如处理某些大文件,如果你只用一个进程,很有可能得跑24小时,为了加速,你就得想办法把你的计算资源用起来,想办法并行运算。那么python什么库是来帮助我们进行并行计算的呢?
有请我们的multiprocess同学来发表获奖感言,“感谢cctv,感谢铁岭tv…”
2. multiprocess详解
multiprocess提供了两个类来实现多进程计算
2.1 Process
- 初始化 ,
__init__(self, group=None, target=None, name=None, args=(), kwargs={})其中group分组,通常不用;target是要执行的函数;name名称;args表示给函数传递的参数
def do(i):
print(f"我是进程小{i} 我为自己带盐!")
for i in range(3):
p = Processor(target=do, args=(i, ), name=f"work_{i}")
p.start()
- 参数共享,python每次开启一个子进程,通常是把数据复制到子进程,不同进程之间没有参数共享。mutliprocess提供了一些类来实现参数共享,包括Array、Manager和Queue。个人在进行人文分类任务时,读取大训练集合的时候喜欢用到Queue来实现参数共享,参考一下代码[1] 。
import multiprocessin

本文探讨了Python的multiprocessing库,介绍了Process与Pool两种实现多进程的方法,重点讲解了Process的参数共享和使用Queue进行大文件处理,以及Pool的简单易用和map方法的应用。
最低0.47元/天 解锁文章
433

被折叠的 条评论
为什么被折叠?



