【发布时间】:2015-05-19 21:03:09
【问题描述】:
我正在尝试使用Java FileLock 写入文件,以禁止所有其他进程和线程读取或写入文件,直到我完成。鉴于this question 及其答案,在我看来,这是我想要的完美工具——用于文件访问的互斥锁。
不过,我很关心来自JavaDocs的这段文字:
代表整个 Java 虚拟机持有文件锁。他们 不适合控制多线程对文件的访问 在同一个虚拟机中。
有人可以减轻我的恐惧或为我指明正确的方向吗?听起来FileLock 根本无法将不同的线程保留在文件之外,即使另一个线程已经获得它。如果是这种情况,是否还有另一种规范的 Java 方法可以保护其他线程?
【问题讨论】:
-
使用正常的互斥方法(
synchronized块或ReentrantLocks)来防止线程同时访问相同的资源。
标签: java multithreading locking