Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。
创新互联公司专注于新密企业网站建设,响应式网站,成都商城网站开发。新密网站建设公司,为新密等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务1. Queue的使用
可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:
import multiprocessing q = multiprocessing.Queue(3) # 初始化的Queue对象,最多能put三条消息 q.put("消息1") q.put("消息2") print(q.full()) q.put("消息3") print(q.full()) # 因为消息列队已满下面的try都会抛出异常,第一个try会等待2秒后再抛出异常,第二个Try会立刻抛出异常 try: q.put("消息4", True, 2) except: print("消息已满,现有的消息为%d" % (q.qsize())) try: q.put_nowait("消息4") except: print("消息已满,现有的消息为%d" % (q.qsize())) # 推荐的方式,先判断消息列队是否已满,再写入 if not q.full(): q.put_nowait("消息4") # 读取消息时,先判断消息列队是否为空,再读取 if not q.empty(): for i in range(q.qsize()): print(q.get_nowait())