gpt4 book ai didi

网络上的 Java 文件锁定

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:21 26 4
gpt4 key购买 nike

这可能与之前的帖子类似,但我想具体说明锁定在网络上的使用,而不是在本地。我想将文件写入共享位置,因此它很可能会在网络上运行(当然是 Windows 网络,也可能是 Mac)。我想防止其他人在写入文件时读取该文件的任何部分。这不是一个高度并发的过程,文件通常小于 10MB。

我已经阅读了 FileLock 文档和 File 文档,对于什么是安全的什么是不安全的,我还是有些困惑。我想锁定整个文件,而不是部分文件。

我可以使用 FileChannel.tryLock() 吗,它在网络上是安全的,还是取决于网络类型?它能在标准的 Windows 网络上运行吗(如果有的话)。

如果这不起作用,最好创建一个零字节文件或目录作为锁定文件,然后写出主文件。为什么 File.createNewFile() 文档说不要使用它来锁定文件?我明白这受竞争条件的影响,并不理想。

最佳答案

这不能在网络文件系统上可靠地完成。只要您的应用程序是访问该文件的唯一应用程序,最好实现某种协作锁定过程(可能在您打开文件时将锁定文件写入网络文件系统)。但是,不推荐这样做的原因是,如果您的进程崩溃或网络出现故障或发生任何其他问题,您的应用程序将进入令人讨厌的肮脏状态。

关于网络上的 Java 文件锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/416285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com