mutilprocess模块的用法
mutilprocess用法
导入Process类
使用Process类生成对象
调用对象的方法
start()
开启子进程
join()
等待这个子进程结束再执行下面的代码
pid与ppid
查看pid
- 导入current_process
- current_process().pid
- 查看子进程的pid属性
- p.pid
- 导入os
- os.get_pid()
查看ppid
- 导入os
- os.get_ppid()
os的方法在任意进程都可以查看当前进程和父进程pid
守护进程
process(daemon= true)
当父进程的最后一行代码结束时,守护进程不管执行到什么地方都会结束
PS:是父进程的代码最后一行,而不是父进程的程序运行完的时候
terminate()
向操作系统发送中断程序的指令
is_alived
返回值是bool类型
判断进程是否还在运行
name
查看进程的名字
一般是Process-1[-2,]之类的,无意义
JoinableQueue
与Queue的不同之处就在多了一个join方法
认识join方法
- 每拿出一个数据时调用一次task_done()方法
- 如果当前队列中还有数据时
- join就会阻塞在这里,直到队列里的数据被清空,程序才会继续执行
生产者消费者模型
from multiprocessing import Queue,Processdef producer(q,food,name):for i in range(10):res = f"{name}生产{food},编号:{i}"q.put(res)print(res)q.put('')def consumer(q,name):while True:res = q.get()if not res :breakprint(f"{name}吃了{res}")if __name__ == '__main__':q = Queue(5)p1 = Process(target=producer,args=(q,'cake','mark'))p2 = Process(target=producer,args=(q,'mike','nick'))c1 = Process(target=consumer,args=(q,'jiangheng'))c2 = Process(target=consumer,args=(q,'yanzhibing'))c3 = Process(target=consumer,args=(q,'yanzhibing'))p1.start()p2.start()c1.start()c2.start()q.put(None)c3.start()
生产者
- 生产数据
缓冲区
- 生产者将数据放入缓冲区,
消费者将数据从缓冲区取出
消费者
- 处理数据
优点
- 解耦
- 支持并发
- 支持忙闲不均
- 生产者消费者模型,大大提高了生产者的生产效率,也大大提高了消费者的消费效率.
队列
管道+锁
- 管道:底层基于内存共享
- 锁:进程锁
q=Queue(n)
- 生成队列对象,设置队列大小
q.put()
- 将任意数据类型放入
q.get()
- 将队列中的第一个数据取出
put/get的默认参数
- block
- 默认为true
- 当队列满了,再put就会进入等待状态
- 当队列空了,再get就会进入等待状态
- 当为False时
- 当队列满了,再put就会抛错
- 当队列空了,再get就会抛错
- 默认为true
- timeout
- 只有当block为True时,才有意义
- 设置等待状态所持续的时间,
超出时间一样会报错
进程锁
from multiprocessing import Lock
- 导入Lock
lock = Lock()
- 定义锁对象
lock.acquire()
- 为你的某一部分代码上锁
- 注意的是,当这把锁上锁时,其他进程无法运行这部分的代码
lock.release()
- 解锁
- 只有解锁后,其他进程才可以抢到这把锁来继续运行自己的代码
注意:在多进程是要确保多个进程使用的是同一把锁
XMind: ZEN - Trial Version
转载于:https://www.cnblogs.com/marklijian/p/11575103.html
mutilprocess模块的用法相关推荐
- python的config模块_python中ConfigParse模块的用法
本文实例讲述了python中configparse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用configparse.rawconfigparse类 读配置用configparse. ...
- python中config方法作用,python中ConfigParse模块的用法
本文实例讲述了python中ConfigParse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用ConfigParse.RawConfigParse类 读配置用ConfigParse. ...
- python中heapq的库是什么_详解Python中heapq模块的用法
详解Python中heapq模块的用法 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...
- python中heapq的库是什么_Python中heapq模块的用法
heapq 模块提供了堆算法.heapq是一种子节点和父节点排序的树形数据结构.这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2 ...
- 【Python】pathlib 模块的用法(Path)
[Python]pathlib 模块的用法 文章目录 [Python]pathlib 模块的用法 1. 介绍 2. 举例 2.1 获取目录 2.2 目录拼接 2.3 创建.删除目录 2.4 读写文件 ...
- et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例
ET200S热电偶模块的用法 在ET200S的热电偶模块使用中,冷端补偿去哪儿了? 客户使用ET200S的热电偶模块(6ES7134-4JB01-0AB0),发现其读值不准,首先确认客户所使用的冷端补 ...
- python 彩票排列组合_对福彩3D号码进行排列组合为例学习Python的itertools模块的用法...
这里我们以对福彩3D号码进行排列组合为例学习Python的itertools模块的用法.首先我们选择心仪的号码.比如我们选择4,5,7,8 第一种我们只要组六的组合.代码如下 import itert ...
- python中的statistics_Python统计分析模块statistics用法示例
本文实例讲述了Python统计分析模块statistics用法.分享给大家供大家参考,具体如下: 一 计算平均数函数mean() >>>import statistics >& ...
- python traceback 丢失_Python异常模块traceback用法实例分析
本文实例讲述了python异常模块traceback用法.分享给大家供大家参考,具体如下: traceback模块被用来跟踪异常返回信息. 如下例所示: import traceback try: r ...
最新文章
- c++ vector最大值_第14章 火柴人的无尽冒险(《C和C++游戏趣味编程》配套教学视频)...
- GitHub万星NLP资源大升级:实现Pytorch和TF深度互操作,集成32个最新预训练模型...
- Gauss-Newton算法学习
- 经典C语言程序100例之九三
- JS----JavaScript数组去重(12种方法,史上最全)
- java线程基础知识
- Day03『NLP打卡营』实践课3:使用预训练模型实现快递单信息抽取
- Creative Coding创意+技术的世界
- 通过配置ant提高EJB开发效率
- jtag接口定义 jtag接口的主要作用是什么
- Linux学习总结(62)——什么是堡垒机?为什么需要堡垒机?
- 边境的悍匪—机器学习实战:第八章 降维
- 机器学习D14——随机森林
- java pv uv_什么是pv和uv?
- 项目成功部署到idea ,并且成功运行,访问却是404
- 高大上:光学技术“回归”地球整出“彩虹车站”
- Hexo建站总结 Github静态网页
- 香港股市api调用代码返回示例
- 给媳妇做一个记录心情的小程序
- 基于stm32的两轮自平衡小车1(模块选型篇)
热门文章
- 棋盘问题 POJ - 1321
- 兄弟连 企业shell笔试题 16-31
- bzoj 4001 [TJOI2015]概率论 数学
- Shell中字符串、数值的比较
- 追求极致速度,极简多模态预训练模型ViLT,推理速度比UNITER快60倍!(ICML2021)...
- SimVLM:拒绝各种花里胡哨!CMUGoogle提出弱监督极简VLP模型,在多个多模态任务上性能SOTA...
- 同济大学土木工程学院招收2名秋季入学全日制博士生
- csv文件转换成html,jQuery 把CSV文件数据转换为HTML表格(Bootstrap Table)
- mysql killed状态连接_MySQL: kill connection的实现简析
- 对于0基础来说,Python 中有哪些难以理解的概念?我似乎明白了