【发布时间】:2013-03-03 08:26:22
【问题描述】:
我有两个进程读取/写入相同的文件。所以我想在它们之间创建一个锁。我的想法是在该文件夹中创建一个名为 file.lock 的文件,其中包含进程标识信息。拥有锁的进程创建文件并通过删除它来释放锁。
我的问题是:
是否有可能在进程 A 正在创建文件时,在最终创建文件之前,进程 B 检查文件并发现它不存在,因此互斥锁失败了?
这种场景下
wait()方法如何实现?
【问题讨论】:
-
我觉得分布式锁最好使用rdbms而不是file。
-
使用数据库并不总是最好的选择,特别是对于简单的问题。
-
@GregS 在某些情况下,我会说添加其他信息作为编辑是可以的。我想这将取决于变化的程度。最后的新段落是一回事。完全重写显然不好。
标签: java multithreading file-io mutex