最佳答案
我试图解决一个涉及许多子问题的大型数值问题,我使用 Python 的多处理模块(特别是 Pool.map)将不同的独立子问题分解到不同的核上。每个子问题都涉及到计算大量的子问题,我试图通过将这些结果存储到一个文件(如果它们还没有被任何进程计算的话)来有效地记录这些结果,否则就跳过计算,直接从文件中读取结果。
我在处理这些文件时遇到了并发性问题: 不同的进程有时会检查子问题是否已经被计算出来(通过查找存储结果的文件) ,查看它是否已经被计算出来,然后运行计算,然后尝试在同一时间将结果写入同一个文件。如何避免编写这样的冲突?