多进程队列和多进程管道有什么区别

2024-04-18 10:50:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试做一些实时(有点像ish)的网络摄像机视频处理。为了抓取所有的帧并处理它们,我将帧抓取器和图像处理器作为两个独立的进程运行。为了让它们进行通信,我尝试在使用python2.7的multiprocessing.queuemultiprocessing.pipe之间做出选择。你知道吗

我不明白这两门课的区别。我们使用putget来共享数据。其他的使用sendreceive。是否存在一个用例,其中一个更倾向于使用另一个方法?我应该选择一种方法而不是另一种吗?你知道吗


Tags: 方法图像网络get视频queueput进程
1条回答
网友
1楼 · 发布于 2024-04-18 10:50:21

multiprocessing.queue是先进先出(FIFO)队列。你可以用它进行单向交流。例如,您的抓取器进程可以put()帧到队列,而处理进程可以get()帧从队列,当它准备好处理它们时。你知道吗

multiprocessing.pipe是一个双向通道,可能不适合您的用例。但是,如果您有两个进程同时在彼此之间发送和接收数据,那么您将使用两个连接对象,其中一个对象上的进程A sends(),另一个对象上的进程A recieves(),而进程B则相反。你知道吗

相关问题 更多 >