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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
python实现端口转发器的方法
Mar 13 Python
python安装以及IDE的配置教程
Apr 29 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
Python3多线程基础知识点
Feb 19 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Keras搭建自编码器操作
Jul 03 Python
python根据字典的键来删除元素的方法
Aug 16 Python
细说NumPy数组的四种乘法的使用
Dec 18 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
详解Python是如何实现issubclass的
2019/07/24 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python表达式的优先级详解
2020/02/18 Python
Django数据库操作之save与update的使用
2020/04/01 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
双十佳事迹材料
2014/01/29 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
财务部总监岗位职责
2014/03/12 职场文书
出生公证委托书
2014/04/03 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android