锁定文件系统上的并发访问

J Fabian Meier

假设有两个不同的Java程序正在尝试从同一目录(Windows或Linux)读取数据和/或向其写入数据。

他们不应该同时做。一个人怎么能保证呢?

到目前为止,我最好的主意是lock在开始使用目录之前先创建一个空文件,然后再将其删除。但是,检查文件是否存在并写入文件是非原子性的,因此这可能会失败。

所述Files.createFile()确实这样一个原子操作:

创建一个新的空文件,如果文件已经存在则失败。检查文件是否存在以及如果不存在则创建新文件是单个操作,对于可能影响目录的所有其他文件系统活动而言,这是一个原子操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章