Python多处理冲突添加到列表中



我使用python Process类让多个对象在多个图片上工作,然后当给定对象完成时将图片附加到共享列表。

然而,结果是如果创建了三个对象,我一次只能在列表中看到一张图片。我从来没有把照片从列表中删除过。似乎每个新图片的.append()都在移除之前的图片。我该怎么处理这件事?

谢谢。

由于全局解释器锁(GIL), Python列表和字典在同一进程中是线程安全的。也许您可以为每个进程分配一个列表或字典容器来存储该进程的响应,然后在process.join()之后将这些项附加回主进程中的列表中?这样,您就不会在多个进程之间共享相同的列表,而是在它们完成每个进程后加入它们。

你也可以使用Queue,它既线程安全又进程安全。

最新更新