python多处理队列对对象put安全吗?
当我将对象放入时,是否需要创建对象的深度副本,然后放入队列?如果您可以确保仅在一个线程中处理该对象,这不是问题。但如果不能,建议使用深度副本 如果将对象放入队列中,队列对象不会自动执行此操作 参见参考文献python多处理队列对对象put安全吗?,python,queue,multiprocessing,deep-copy,Python,Queue,Multiprocessing,Deep Copy,当我将对象放入时,是否需要创建对象的深度副本,然后放入队列?如果您可以确保仅在一个线程中处理该对象,这不是问题。但如果不能,建议使用深度副本 如果将对象放入队列中,队列对象不会自动执行此操作 参见参考文献 请记住,对象需要能够被pickle() 通常更有用的是,能够生成一个带有参数的进程来告诉它要做什么工作。与线程不同,要将参数传递给多处理进程,参数必须能够使用pickle序列化。本例向每个工作者传递一个数字,因此输出更有趣一些 当OP使用多处理时,这是否相关?你的意思是什么?博客文章和
当OP使用多处理时,这是否相关?你的意思是什么?博客文章和书页提到了深度复制的问题,而不仅仅是共同的多处理。对不起,我被第一个链接对多线程和处理的可互换使用弄糊涂了。
Thread
与多处理
没有直接关系multiprocessing.Queue
(至少在python2中)在序列化对象时创建对象的副本,但要注意竞争条件(请参阅其他答案中的链接)。最后,图书链接断开,因为它不包含引用的页面。@user1071847哪个链接断开了?我可以访问所有这些。我相信对象在传输到接收过程之前已被腌制(即您没有处理同一副本)@Majid请接受答案并关闭问题。