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进程的信号通讯
Apr 09 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
Python统计分析模块statistics用法示例
Sep 06 Python
np.dot()函数的用法详解
Jan 17 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 Python
Python pip install如何修改默认下载路径
Apr 29 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
Python用requests库爬取返回为空的解决办法
Feb 21 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
名人演讲稿范文
2013/12/28 职场文书
爱情保证书范文
2014/02/01 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
Java使用HttpClient实现文件下载
2022/08/14 Java/Android