【发布时间】:2018-01-09 09:43:47
【问题描述】:
我有几个脚本。他们每个人都进行一些计算,并且完全独立于其他人。一旦这些计算完成,它们将被保存到磁盘并更新记录。
记录由一个类的实例维护,该实例将自身保存到磁盘中。我想在多个脚本中使用一个记录实例(例如,record_manager = RecordManager(file_on_disk)。然后是record_manager.update(...));但我现在不能这样做,因为在更新记录时,可能会同时对磁盘上的同一个文件进行写访问,从而导致数据丢失。所以我对每个脚本都有一个单独的记录管理器,然后我以后手动合并记录。
在解决并发写入访问问题的所有脚本中使用单个实例的最简单方法是什么?
我使用的是 macOS (High sierra) 和 linux (Ubuntu 16.04)。
谢谢!
【问题讨论】:
-
您是否考虑过在所有脚本中只运行对象的一个实例并使用进程通信来告诉它要写什么?
-
我很确定这个问题的答案可能取决于你的操作系统,所以请提供
-
拥有多个日志或任何您想调用它们的名称并在它们全部完成后合并它们是很常见的。如果他们是独立的,为什么还要麻烦呢?
-
@AntiMatterDynamite 你能详细说明一下吗?什么意思?
-
@majorcoder Linux 和 MacOS。我已经更新了问题
标签: python file concurrency