Jea*_*let 5 java directory file atomic
我有一个目录,其中包含提供给客户的数据文件,比如说/srv/data.在进行一系列更新时,我正在努力/srv/data_tmp,并且在操作结束时,我想原子地替换data为data_tmp.File.renameTo()当目标是现有目录时,总是为我返回false.我怎样才能做到这一点?
/srv/data
/srv/data_tmp
data
data_tmp
File.renameTo()
p.m*_*ino 1
恐怕你不能。至少不是SO级别。因此,即使您在 java 应用程序的上下文中管理“原子性”,也无法保证其他“流氓”进程会干扰实际的文件系统级别。
如果我是你,我会阅读这篇文章(很旧,但应该给你一些想法),然后看看你是否可以将建议的方法移植到更现代的版本。
哦,等等,已经有人这么做了!
显然你也不是第一个在这里问这个问题的人
祝你好运...
归档时间:
15 年,3 月 前
查看次数:
3266 次
最近记录:
12 年,8 月 前