我目前正在实现一个代码,该代码将实时显示通过网络接收到的某些数据。 我在专用过程中运行网络获取和解码部分,并在主要过程中管理显示部分。
我首先使用队列将解码后的数据发送到主进程,尽管它可以工作,但由于存在大量数据,我仍然遇到一些性能问题。我想使用Pipes而不是Queues来提高性能,但是它冻结了,没有返回任何错误。 我做错了什么 ? Pipe是否具有最大缓冲区大小,如果可以,如何增加缓冲区大小?
这是一些简单的代码,突出了我所面临的问题。
from multiprocessing import Pipe
pconn, ccon = Pipe()
signal = [-1.4168047904968263e-06]*4096
ccon.send("toto")
print(pconn.recv()) #OK
ccon.send(signal) #this line fails
print(pconn.recv())