流程互通是指流程之间的数据交换。有必要在进程之间交换数据以开发并行应用程序。下图显示了多个子进程之间同步的各种通信机制
各种沟通机制
在本节中,我们将了解各种通信机制。机制如下所述 -
队列
队列可以与多进程程序一起使用。 多处理 模块的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()函数返回一个由管道连接的连接对象,默认情况下是双工(双向)。它以下列方式工作 -
它返回一对连接对象,表示管道的两端。