Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中创建进程间文件访问互斥?_Java_Multithreading_File Io_Mutex - Fatal编程技术网

如何在java中创建进程间文件访问互斥?

如何在java中创建进程间文件访问互斥?,java,multithreading,file-io,mutex,Java,Multithreading,File Io,Mutex,我有两个进程读取/写入相同的文件。所以我想在他们之间建立一个锁。我的想法是在名为file.lock的文件夹中创建一个包含进程标识信息的文件。拥有锁的进程创建文件并通过删除来释放锁。 我的问题是: 是否有可能在进程A创建文件时,在最终创建文件之前,进程B检查文件并发现它不在那里,因此互斥锁失败 在这种情况下如何实现wait()方法 我的建议是研究API。我认为最好使用rdbms而不是文件来进行分布式锁定。使用数据库并不总是最好的选择,特别是对于简单的问题。@GregS在某些情况下,我认为可以添加额

我有两个进程读取/写入相同的文件。所以我想在他们之间建立一个锁。我的想法是在名为file.lock的文件夹中创建一个包含进程标识信息的文件。拥有锁的进程创建文件并通过删除来释放锁。
我的问题是:

  • 是否有可能在进程A创建文件时,在最终创建文件之前,进程B检查文件并发现它不在那里,因此互斥锁失败

  • 在这种情况下如何实现
    wait()
    方法


  • 我的建议是研究API。

    我认为最好使用rdbms而不是文件来进行分布式锁定。使用数据库并不总是最好的选择,特别是对于简单的问题。@GregS在某些情况下,我认为可以添加额外的信息作为编辑。我想这将取决于变化的程度。结尾处的新段落是一回事;完全重写显然是不好的。