介绍
这篇文章主要讲解了python多进程使用函数封装的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
我就废话不多说了,直接看代码吧!
进口多处理为议员 从多处理导入过程 类MyProcess(过程): “““ 自定义多进程,继承自原生过程,目的是获取多进程结果到队列中 “““ def __init__(自我、函数参数q): 超级(MyProcess自我). __init__ () 自我。func=函数 自我。args=参数 自我。res=& # 39; & # 39; 自我。q=问 #自我。_daemonic=True #自我。_daemonic=True def运行(自我): 自我。res=self.func (* self.args) self.q.put (self.func。__name__, self.res)) def use_multiprocessing (func_list): # os.system(& # 39;出口PYTHONOPTIMIZE=1 & # 39;) #解决恶魔的过程是不允许有孩子问题 q=mp.Queue() #队列,将多进程结果存入这里,进程间共享,多进程必须使用多处理的队列 proc_list=[] res=[] 在func_list func: proc=MyProcess (func (& # 39; func # 39;], arg游戏=func (& # 39; args # 39;], q=问) proc.start () proc_list.append(触发) 在proc_list: p p.join () 虽然不是q.empty (): r=q.get () res.append(右) 返回res
使用时候,将需要多进程执行的函数和函数的参数当作字段,组成传个列表给use_multiprocessing方法即可
<强> python一个文件里面多个函数同时执行(多进程的方法,并发)强>
看代码吧!
#=utf - 8编码 导入的时间 从硒进口webdriver 进口线程 def fun1(一个): 打印一个 def fun2 (): 打印222 线程=[] threads.append (threading.Thread(目标=fun1 args=(u # 39;爱情买卖& # 39;,))) threads.append (threading.Thread(目标=fun2)) 打印(线程) if __name__==& # 39; __main__ # 39;: 在线程t: t.setDaemon (True) #我拿来做硒自动化模拟多个用户使用浏览器的时候,加了这个就启动不了,要去掉 t.start () 进口线程
首先导入螺纹模块,这是使用多线程的前提。
t的线程: t.setDaemon(真正的) t.start ()
最后通过对循环遍历数组。(数组被装载了t1和t2两个线程)
<代码> setDaemon() 代码>
setDaemon(真正的)将线程声明为守护线程,必须在开始()方法调用之前设置,如果不设置为守护线程程序会被无限挂起。子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句打印“在% s"% ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
<代码> start() 代码>
开始线程活动。
<强>后记:强>
搞了个并发浏览器操作,
如果要做参数化,用ddt会导致所有行为都在一个浏览器操作,去掉ddt框架后,并发正常
看完上述内容,是不是对python多进程使用函数封装的方法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。