背景
我在查看 这里 的源代码,该代码是用于Python 2.7中的多进程队列的。我有一些问题。
使用双端队列(deque)作为缓冲区,并将放入队列中的任何项附加到双端队列中,但对于get()操作,则使用管道(pipe)。
可以看到,在put()期间,如果饲送线程尚未启动,则会启动。
该线程将从队列中弹出对象并将其发送到上述管道的读取端。
问题
那么,为什么要同时使用双端队列和管道呢?
难道不能只使用双端队列(或任何具有FIFO行为的其他数据结构)并同步推入和弹出吗?
同样,是否也可以只使用管道,包装send()和recv()方法呢?
也许我有所遗漏,但是饲养线程将项目弹出并将它们放在管道中似乎有些过分了。