gpt4 book ai didi

java - 使用 FileLock 在 Java 中锁定文件

转载 作者:行者123 更新时间:2023-12-03 22:55:56 33 4
gpt4 key购买 nike

我正在尝试使用 Java FileLock 写入文件, 以禁止所有其他进程和线程读取或写入它,直到我完成它。鉴于 this question以及它的答案,在我看来,这是我想要的完美工具——一个用于文件访问的互斥体。

不过,我很在意这篇来自JavaDocs的文字:

File locks are held on behalf of the entire Java virtual machine. They are not suitable for controlling access to a file by multiple threads within the same virtual machine.

有人可以减轻我的恐惧或为我指明正确的方向吗?听起来 FileLock 根本无法将不同的线程保持在文件之外,即使另一个线程已经获得它也是如此。如果是这种情况,是否有另一种规范的 Java 方法可以执行此操作以保护其他线程?

最佳答案

FileLock 是进程级锁,因此不会保护文件免受具有锁的进程中多个线程的并发访问。

您需要结合使用 FileLock 来防止来自其他进程的并发访问和一些其他同步机制(例如用于访问文件的 synchronized 方法)您的进程以防止您自己的线程进行并发访问。

关于java - 使用 FileLock 在 Java 中锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336109/

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