python多进程使用函数封装实例


Posted in Python onMay 02, 2020

我就废话不多说了,直接看代码吧!

import multiprocessing as mp
from multiprocessing import Process
class MyProcess(Process):
  """
  自定义多进程,继承自原生Process,目的是获取多进程结果到queue
  """
  def __init__(self, func, args, q):
    super(MyProcess, self).__init__()
    self.func = func
    self.args = args
    self.res = ''
    self.q = q
    #self._daemonic = True
    #self._daemonic = True
 
  def run(self):
    self.res = self.func(*self.args)
    self.q.put((self.func.__name__, self.res))
  
def use_multiprocessing(func_list):
  #os.system('export PYTHONOPTIMIZE=1') # 解决 daemonic processes are not allowed to have children 问题
  q = mp.Queue() # 队列,将多进程结果存入这里,进程间共享, 多进程必须使用 multiprocessing 的queue
  proc_list = []
  res = []
  for func in func_list:
    proc = MyProcess(func['func'], args=func['args'], q=q)
    proc.start()
    proc_list.append(proc)
 
  for p in proc_list:
    p.join()
  while not q.empty():
    r = q.get()
    res.append(r)
  return res

使用时候,将需要多进程执行的函数和函数的参数当作字段,组成个list 传给use_multiprocessing 方法即可

补充知识:python一个文件里面多个函数同时执行(多进程的方法,并发)

看代码吧!

#coding=utf-8
import time
from selenium import webdriver
import threading

def fun1(a):
print a

def fun2():

print 222

threads = []
threads.append(threading.Thread(target=fun1,args=(u'爱情买卖',)))
threads.append(threading.Thread(target=fun2))
print(threads)
if __name__ == '__main__':

for t in threads:


t.setDaemon(True) #我拿来做selenium自动化模拟多个用户使用浏览器的时候,加了这个就启动不了,要去掉


t.start()

import threading

首先导入threading 模块,这是使用多线程的前提。

threads = []
t1 = threading.Thread(target=fun1,args=(u'爱情买卖',))
threads.append(t1)

创建了threads数组,创建线程t1,使用threading.Thread()方法,在这个方法中调用music方法target=music,args方法对music进行传参。 把创建好的线程t1装到threads数组中。

接着以同样的方式创建线程t2,并把t2也装到threads数组。

for t in threads:
t.setDaemon(True)

t.start()

最后通过for循环遍历数组。(数组被装载了t1和t2两个线程)

setDaemon()

setDaemon(True)将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句print "all over %s" %ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。

start()

开始线程活动。

后记:

搞了个并发浏览器操作,

如果要做参数化,用ddt会导致所有行为都在一个浏览器操作,去掉ddt框架后,并发正常

以上这篇python多进程使用函数封装实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python中如何设置代码自动提示
Jul 15 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 #Python
python同时遍历两个list用法说明
May 02 #Python
python多线程实现同时执行两个while循环的操作
May 02 #Python
python 实现两个线程交替执行
May 02 #Python
Python中使用threading.Event协调线程的运行详解
May 02 #Python
浅谈Python3多线程之间的执行顺序问题
May 02 #Python
python继承threading.Thread实现有返回值的子类实例
May 02 #Python
You might like
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
基于mysql的论坛(4)
2006/10/09 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
浅析JavaScript动画
2015/06/10 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
python optparse模块使用实例
2015/04/09 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
优秀的教师个人的中文求职信
2013/09/21 职场文书
毕业生自荐信
2013/12/14 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
趣味运动会策划方案
2014/06/02 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
教师辞职书范文
2015/02/26 职场文书
小学六年级毕业感言
2015/07/30 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
Mysql开启外网访问
2022/05/15 MySQL