在Java 1.5中,java.nio.channels.FileLock没有检查查看已经被锁定的文件。 Referenced HereJava 5和Java 6之间的FileLock变化
的片段状态:
的java.nio.channels.FileLock中的类检查已经通过 其他FileChannel实例
锁定的文件Java SE 6中抛出 OverlappingFileLockException如果 应用程序尝试锁定区域 ,该区域与通过 另一个FileChannel实例锁定的区域重叠。以前的 版本未检查由其他FileChannel 实例获取的文件锁 。默认情况下,java.nio.channels.FileChannel.lock 方法检查请求的锁 是否与此虚拟机所持有的区域重叠。
因此,在Java 6之前,如果有多个程序写入同一个文件(每个程序试图获得排他锁),排他性文件锁定不起作用。人们如何在Java 5之前和之前解决这个问题?