Python中如何实现进程间基于队列的通信机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1489个文字,预计阅读时间需要6分钟。
仅提供学习,请明确出处+过程-Queue+Process。不能像线程那样共享全局变量,那么它们之间如果需要传递递归值该如何处理呢?对于这种需求,操作系统提供了多种机制来实现。
仅供学习,转载请注明出处
进程间通信-Queue
Process并不能像线程那样共享全局变量,那么它们之间如果有传递值的需求,那么该怎么办呢?
对于这种需求,操作系统提供了很多机制来实现进程间的通信,例如队列Queue
Queue的使用
可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:
In [2]: from multiprocessing import QueueIn [3]: q = Queue(3) # 创建只有3个位置的队列
In [4]: q.put("蓝利群")
In [5]: q.put("芙蓉王")
In [6]: q.put("万宝路")
In [7]:
In [7]: q.put("万宝路") # 当插入第四个数据到队列的时候,队列就是堵塞。需要等待队列释放了,才能再次插入
从上面可以看出队列是可以限制大小的。
本文共计1489个文字,预计阅读时间需要6分钟。
仅提供学习,请明确出处+过程-Queue+Process。不能像线程那样共享全局变量,那么它们之间如果需要传递递归值该如何处理呢?对于这种需求,操作系统提供了多种机制来实现。
仅供学习,转载请注明出处
进程间通信-Queue
Process并不能像线程那样共享全局变量,那么它们之间如果有传递值的需求,那么该怎么办呢?
对于这种需求,操作系统提供了很多机制来实现进程间的通信,例如队列Queue
Queue的使用
可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:
In [2]: from multiprocessing import QueueIn [3]: q = Queue(3) # 创建只有3个位置的队列
In [4]: q.put("蓝利群")
In [5]: q.put("芙蓉王")
In [6]: q.put("万宝路")
In [7]:
In [7]: q.put("万宝路") # 当插入第四个数据到队列的时候,队列就是堵塞。需要等待队列释放了,才能再次插入
从上面可以看出队列是可以限制大小的。

