【发布时间】:2015-01-13 09:47:42
【问题描述】:
我正在做一些蛮力计算并将结果放入集合all_data。计算数据块会给出一个数字列表new_data,我想将其添加到大集合中:all_data.update(new_data)。现在虽然计算部分很容易通过multiprocessing.Pool.map 进行并行处理,但更新部分很慢。
显然,如果一个人在new_data 中有两个相同的元素,而all_data 中没有这些元素,并且试图同时添加它们,则会出现问题。但是如果我们假设new_data 也是一个集合,还有问题吗?我能看到的唯一问题是集合在内存中的组织方式,所以问题是:
有没有办法组织一个允许同时添加元素的集合结构?如果是,是用 Python 实现的吗?
【问题讨论】:
-
multiprocessing提供用于共享数据和同步的原语。看看this
标签: python multithreading thread-safety multiprocessing