python多进程管道通信(精)
Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。
Pipe方法返回(conn1, conn2)代表一个管道的两个端。Pipe方法有duplex参数,如果duplex参数为True(默认值),那么这个管道是全双工模式,也就是说conn1和conn2均可收发。duplex为False,conn1只负责接受消息,conn2只负责发送消息。
send和recv方法分别是发送和接受消息的方法。例如,在全双工模式下,可以调用conn1.send发送消息,conn1.recv接收消息。如果没有消息可接收,recv方法会一直阻塞。如果管道已经被关闭,那么recv方法会抛出EOFError。
第一种:普通
from multiprocessing import Process, Pipe
import timedef proc(pipe):time.sleep(1)a = Truepipe.send(a)if __name__ == '__main__':parentPipe, childPipe = Pipe(True)p = Process(target=proc, args=(childPipe,))p.start()while True:print(parentPipe.recv())print(111111) #测试堵塞
关闭Process创建的子进程
if p != None:p.terminate()
另一种进程通信,好像不如pipe管道好,数据多了就会在jion处堵塞出不来了
import random
import time
import multiprocessingdef worker(name, q):t = 0for i in range(10):print(name + " " + str(i))x = random.randint(1, 3)t += xtime.sleep(x * 0.1)q.put(t)q = multiprocessing.Queue()
jobs = []
for i in range(10):p = multiprocessing.Process(target=worker, args=(str(i), q))jobs.append(p)p.start()for p in jobs:p.join()results = [q.get() for j in jobs]
print(results)
python多进程管道通信(精)相关推荐
- python 多进程管道 消息式通信
from multiprocessing import Process,Pipe # 导入进程,管道模块 def f(conn): conn.send([1,'test',None]) ...
- python 多进程共享变量manager_python 进程间共享数据 multiprocessing 通信问题 — Manager...
Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装.使用multiprocessing.Manager可以简单地使用这些高级接口. Mana ...
- Python多进程编程及多进程间的通信,数据传输
多进程编程及进程间的通信多进程的优缺点进程(process)三态五态(三态的基础上增加了新建态和终止态)进程优先级进程特征孤儿进程僵尸进程要求理解多进程编程进程相关的函数多进程模块Process()创 ...
- python进程socket通信_python实现多进程通信实例分析
操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那么进程之间怎么进行通信?他们之间的关联是怎样的?实现原理是什么 ...
- python 多进程 每个进程做不同功能实例_python多进程通信实例分析
操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那么进程之间怎么进行通信?他们之间的关联是怎样的?实现原理是什么 ...
- python多进程详解
目录 python多进程 序.multiprocessing 一.Process process介绍 例1.1:创建函数并将其作为单个进程 例1.2:创建函数并将其作为多个进程 例1.3:将进程定义为 ...
- Python 多进程 multiprocessing 使用示例
参考:http://blog.csdn.net/qdx411324962/article/details/46810421 参考:http://www.lxway.com/4488626156.htm ...
- python多进程运行死机_python多进程假死
结论:python多进程间用Queue通信时,如果子进程操作Queue满了或者内容比较大的情况下,该子进程会阻塞等待取走Queue内容(如果Queue数据量比较少,不会等待),如果调用join,主进程 ...
- Python 多进程
本篇转载自 灰寨小学–python小陈 若有侵权,立即删除. Python多进程编程 序. multiprocessing python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的 ...
最新文章
- 双摄就能拍银河拍月亮,还有皮卡丘教你手势识别,这是Pixel 4和谷歌的一箩筐新硬件...
- 自己实现 koa 中间件的 app.use 和 next 函数
- 怎么卸载Apache_pn服务-PHPnow使用问题
- Spring 的优点
- ubuntu学习命令
- mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)
- MongoDB 教程一: 安装和使用 (Mongodb启动命令mongod参数说明)
- SQLSERVER:sqlserver2008r2安装好后,自动提示功能不可以使用
- oracle如何获取自增id,oracle实现自增id
- 模仿下列程序自己打印一个趣味图案c语言,趣味程序导学C语言(28页)-原创力文档...
- php动态网页设计(第2版),PHP动态网页设计(第2版)——使用PHP
- 卸载/删除Homebrew包,包括其所有依赖项
- 一款可视化低代码编程平台开源了!
- windows android装应用,以IT之家为例,Win10 Mobile安装安卓APK应用体验如何?
- HaaS506-HD1本地更新固件教程
- 网卡设置 网卡的高级设置说明
- 哪款蓝牙耳机的续航比较好?四款续航时间长的蓝牙耳机测评
- 教你玩Robocode(1)
- 解除了网课自动暂停的限制!终于可以一边听课,一边玩耍了!
- 某运营商云平台在线报价及合同管理系统
热门文章
- 原F1000Prime推荐:ACE2泛癌分析图谱(TCGA数据库挖掘)
- python小游戏之二
- 10000个科学难题书籍介绍
- Linux学习之C语言的进程与线程编程
- swing中怎么在原来图片的基础上切换第二张图片_摄影比赛原来是这么评出来的!照片点评与修图小赛第10期...
- hub设备_外设再多也不怕,ORICO 7口HUB测评
- 前端笔记-vue cli引入sementic-ui(sementic-ui-vue)
- Qt工作笔记-对QXmlStreamWriter进一步的认识(写复杂的XML文件)
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(三)数据共享和线程
- java 保留html_好程序员Java培训分享Java包是什么?