繁体   English   中英

为什么 `multiprocessing.Queue` 使用馈线线程?

[英]Why does `multiprocessing.Queue` use a feeder thread?

文档中:

当一个进程第一次将一个项目放入队列时,一个供给线程启动,它将对象从缓冲区传输到 pipe。

这是为什么? multiprocessing.SimpleQueue没有这样的线程就可以相处。 仅仅是为了让作家不必等待 object 被腌制吗? 还是另有原因?

这个问题似乎是相关的,但那里给出的答案对我没有多大帮助。

似乎没有后台馈线线程(如SimpleQueue中),如果底层Pipe的缓冲区已满,则put将阻塞。 Pipe(duplex=False)使用os.pipe实现,容量为 16 页(自 Linux 2.6.35 起) 使用馈线线程(如在Queue中),编写者不必等待底层 pipe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM