流程互通是指流程之间的数据交换。有必要在进程之间交换数据以开发并行应用程序。下图显示了多个子进程之间同步的各种通信机制

各种沟通机制
在本节中,我们将了解各种通信机制。机制如下所述 -
队列
队列可以与多进程程序一起使用。 多处理 模块的Queue类与 Queue.Queue 类相似。因此,可以使用相同的API。 多处理 .Queue为我们提供了一个线程和进程安全的FIFO(先进先出)进程之间的通信机制。
例
下面是一个简单的例子,它来自python官方文档的多处理,以理解Queue类的多处理的概念。
from multiprocessing import Process, Queue import queue import random def f(q): q.put([42, None, 'hello']) def main(): q = Queue() p = Process(target = f, args = (q,)) p.start() print (q.get()) if __name__ == '__main__': main()
输出
[42, None, 'hello']
管道
它是一种数据结构,用于在多进程程序中的进程之间进行通信。Pipe()函数返回一个由管道连接的连接对象,默认情况下是双工(双向)。它以下列方式工作 -
-
它返回一对连接对象,表示管道的两端。
-
每个对象都有两个方法 - send() 和 recv()
Python进程间通信机制详解

本文介绍了Python中实现进程间通信的各种方法,包括队列、管道、Manager和CSP,并展示了使用Ctypes-Array和Value进行数据交换。还探讨了PyCSP库在实现通信顺序进程中的应用。
最低0.47元/天 解锁文章
2525

被折叠的 条评论
为什么被折叠?



