Я пытаюсь решить большую числовую проблему, которая включает в себя множество подзадач, и я использую модуль многопроцессорности Python (в частности Pool.map) для разделения различных независимых подзадач на разные ядра. Каждая подзадача включает в себя вычисление множества подзадач, и я пытаюсь эффективно запоминать эти результаты, сохраняя их в файле, если они еще не были вычислены каким-либо процессом, иначе пропустите вычисление и просто прочитайте результаты из файла.
У меня возникают проблемы с файлами concurrency: иногда разные процессы проверяют, была ли еще вычисленная подзадача (путем поиска файла, в котором будут храниться результаты), см., что у него нет, запустите вычисление, затем попробуйте записать результаты в один и тот же файл одновременно. Как избежать столкновений, подобных этому?