Python 多处理队列中的get方法是否从队列中删除该值

Python 多处理队列中的get方法是否从队列中删除该值,python,multiprocessing,Python,Multiprocessing,在python多处理中,当使用队列在进程之间共享数据时,一旦将数据放入队列()中,并且在另一个进程中使用get()检索数据时,此方法是从队列中删除值,还是只在队列中深度复制值?e、 g from multiprocessing import Process, Queue def f(q): q.put([42, None, 'hello']) if __name__ == '__main__': q = Queue() p = Process(target=f, ar

在python多处理中,当使用队列在进程之间共享数据时,一旦将数据放入队列()中,并且在另一个进程中使用get()检索数据时,此方法是从队列中删除值,还是只在队列中深度复制值?e、 g

from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print q.get()    # prints "[42, None, 'hello']"
    p.join()

在上面的代码中,q.get()是否从队列中删除[42,None,‘hello’

是的,queue.get()删除队列中的第一项。
多处理.queue
复制文档中所述的
queue.queue
的API,因此您可以只阅读
queue.queue.get
的文档。