当前位置: 首页 > news >正文

python多进程通信中的Queue、SimpleQueue、Pipe

python多进程通信中的Queue、SimpleQueue、Pipe

python多进程通信中的Queue、SimpleQueue、Pipepython多进程通信中的Queue、SimpleQueue、Pipe


Queue

多进程中的Queue的底层是使用Pipe实现的,因此使用Queue进行多进程通信的时候,其传输对象要求是可以序列化的,否则会进行PicklingError报错。


为了提供put方法的超时控制,Queue并不是直接将对象写入到管道中,而是先写入到一个本地的缓存中,再将其从缓存中放入到pipe中,内部有个专门的feeder线程负责这项工作。

由于feeder线程的存在,Queue还提供了以下特殊方法来处理进程退出时缓存中仍然存在数据的问题。