【发布时间】:2017-07-27 12:51:28
【问题描述】:
我有两个脚本正在更新同一个文件。两者可以同时运行。如何防止文件更新不一致?也就是说,如何序列化对文件的访问?
让我解释一下这个问题。假设有一个架子文件,并且有 2 个脚本正在更新它。脚本 1 执行此操作:
import shelve
sf = shelve.open('some_file')
sf[key1] = data1
sf.close()
脚本 2 的代码如下:
import shelve
sf = shelve.open('some_file')
sf[key2] = data2
sf.close()
假设脚本 2 在脚本 1 打开文件之后调度。当脚本 2 完成并且控制权返回到脚本 1 时,脚本 1 将进行更新并关闭文件。这将导致脚本 2 的更新丢失。如何防止这种情况发生,以便对文件进行两次更新?
【问题讨论】:
标签: python concurrency python-3.6