zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python中多进程下通信使用管道Pipe与队列 Queue 的区别: Multiprocessing - Pipe vs Queue

2023-09-11 14:19:19 时间

参考:

https://stackoverflow.com/questions/8463008/multiprocessing-pipe-vs-queue

 

 

 

=========================================================

 

 

区别:

  • A Pipe() can only have two endpoints.

  • A Queue() can have multiple producers and consumers.

When to use them

If you need more than two points to communicate, use a Queue().

If you need absolute performance, a Pipe() is much faster because Queue() is built on top of Pipe().

 

 

 

------------

 

结论:

In summary Pipe() is about three times faster than a Queue().

 

 

Queue 的底层是使用Pipe来实现的,或者说Queue是对Pipe的进一步包装,所以性能上有所下降,按照上面的参考资料显示速度降为了Pipe的3分之一,但是Queue支持的功能更加广泛,所以使用Pipe还是Queue要综合考虑性能要求及功能需求。