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中for循环控制语句用法实例
Jun 02 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
利用python库在局域网内传输文件的方法
Jun 04 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
通过python3实现投票功能代码实例
Sep 26 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
解决python Jupyter不能导入外部包问题
Apr 15 Python
python对execl 处理操作代码
Jun 22 Python
python根据字典的键来删除元素的方法
Aug 16 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功能函数
2015/04/15 PHP
为你总结一些php信息函数
2015/10/21 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python使用tkinter实现简单计算器
2018/01/30 Python
关于Python的一些学习总结
2018/05/25 Python
浅析python继承与多重继承
2018/09/13 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
NumPy统计函数的实现方法
2020/01/21 Python
python如何快速生成时间戳
2020/07/21 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
家长给老师的道歉信
2014/01/13 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
外国人聘用意向书
2014/04/01 职场文书
公司授权委托书
2014/04/04 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
高一军训的心得体会
2014/09/01 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
python如何做代码性能分析
2021/04/26 Python