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基于PycURL自动处理cookie的方法
Jul 25 Python
python中set常用操作汇总
Jun 30 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
对Python3使运行暂停的方法详解
Feb 18 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
django 单表操作实例详解
Jul 30 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
Flask缓存静态文件的具体方法
Aug 02 Python
Python常用扩展插件使用教程解析
Nov 02 Python
python神经网络ResNet50模型
May 06 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
php抓取https的内容的代码
2010/04/06 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
新浪的图片新闻效果
2007/01/13 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
python通过shutil实现快速文件复制的方法
2015/03/14 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python生成器generator用法示例
2018/08/10 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python 实现自动导入缺失的库
2019/10/29 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
南京某公司笔试题
2013/01/27 面试题
师范生自荐信范文
2013/10/06 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
任命书标准格式
2015/03/02 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技