python multiprocessing模块用法及原理介绍


Posted in Python onAugust 20, 2019

一 multiprocessing模块介绍

python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。

Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。

multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,>提供了Process、Queue、Pipe、Lock等组件。

需要再次强调的一点是:与线程不同,进程没有任何共享状态,进程修改的数据,改动仅限于该进程内。

二 Process类的介绍

创建进程的类:

Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,可用来开启一个子进程

强调:

1. 需要使用关键字的方式来指定参数

2. args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号

参数介绍:

group参数未使用,值始终为None

target表示调用对象,即子进程要执行的任务

args表示调用对象的位置参数元组,args=(1,2,'mike',)

kwargs表示调用对象的字典,kwargs={'name':'mike','age':18}

name为子进程的名称

方法介绍:

p.start() :# 启动进程,并调用该子进程中的p.run()

p.run() :# 进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类的类中一定要实现该方法

p.terminate() : # 强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁

p.is_alive() :# 如果p仍然运行,返回True

p.join([timeout]) :# 主进程等待p终止(强调:是主进程处于等的状态,而p是处于运行的状态)。timeout是可选的超时时间。

属性介绍

p.daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建自己的新进程,必须在p.start()之前设置

p.name:进程的名称

p.pid:进程的pid

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
跟老齐学Python之模块的加载
Oct 24 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python实现端口检测的方法
Jul 24 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
python write无法写入文件的解决方法
Jan 23 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
python 动态迁移solr数据过程解析
Sep 04 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python如何调用java类
Jul 05 Python
常用的Python代码调试工具总结
Jun 23 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 #Python
PyTorch中常用的激活函数的方法示例
Aug 20 #Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 #Python
python批量解压zip文件的方法
Aug 20 #Python
pytorch获取vgg16-feature层输出的例子
Aug 20 #Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 #Python
Python实现某论坛自动签到功能
Aug 20 #Python
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
python实现二分查找算法
2017/09/21 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
Python jieba库用法及实例解析
2019/11/04 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
HTML文本属性&颜色控制属性的实现
2019/12/17 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
干部行政关系介绍信
2014/01/17 职场文书
大学班级计划书
2014/04/29 职场文书
工作说明书范文
2014/05/07 职场文书
个人承诺书格式
2014/06/03 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
工程承包协议书
2014/10/20 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP