首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python单进程间通讯及进程池之间通讯

缘接上文,

Python多任务开发

6.单个进程间的通讯Queue

使用队列进行进程与进程之间的通讯,通过multiprocessing.Queue(maxsize)对象进行通信。FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。

中有两个方法一个是, 一个是

1)put(obj[, block[, timeout]])

a.如果可选的参数block为True且timeout为空对象(默认的情况,阻塞调用,无超时)。

b.如果是个正整数,阻塞调用进程最多timeout秒,如果一直无空空间可用,抛出Full异常(带超时的阻塞调用)。

c.如果block为False,如果有空闲空间可用将数据放入队列,否则立即抛出Full异常

其非阻塞版本为等同于

2)get([block[, timeout]])

从队列中删除并返回一个数据。block为True,说明get取值时是阻塞的要先判断队列是否为空,不为空在取值,否则会提示Empty异常。就是超时时间。其非阻塞方法为相当与get(False)

3)例子

木匠一家一顿腹泻后,最终还是叫救护车送医院了。之后多辆救护车到达并把他们送到医院,并在到达后医护人员再次确认伤员是否全部到达,等待医护人员处理。

7.进程池之间通信

通过实现进程池之间的通信,如果使用的是Pool创建进程,就需要使用中的,当使用,会报错误信息:

进程池

线程间通信

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190509A0MC1600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券