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统计字符串中指定字符出现次数的方法
Apr 04 Python
Python 的描述符 descriptor详解
Feb 27 Python
python八大排序算法速度实例对比
Dec 06 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
pandas string转dataframe的方法
Apr 11 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Python3字符串encode与decode的讲解
Apr 02 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
Django后台管理系统的图文使用教学
Jan 20 Python
python使用Geany编辑器配置方法
Feb 21 Python
python判断变量是否为列表的方法
Sep 17 Python
python 生成器需注意的小问题
Sep 29 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个人网站架设连环讲(三)
2006/10/09 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
php header函数的常用http头设置
2015/06/25 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python解析xml模块封装代码
2014/02/07 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
2014年销售工作总结范文
2014/12/01 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
趵突泉导游词
2015/02/03 职场文书
环境卫生标语
2015/08/03 职场文书
Python数据类型最全知识总结
2021/05/31 Python