以下是我提供的文件锁定和解锁方法:
锁定方法:
fileLock = fileChannel.tryLock();
if (fileLock != null)
System.out.println("File is locked");
解锁方法,
fileLock.release();
现在,这两种方法被两个并发进程访问。如果其中一个进程崩溃,在解锁之前,另一个进程无法访问该文件直到JVM关闭。有没有人能帮我,是否可能(以及如何)指定锁定文件的某个时间限制。
以下是我提供的文件锁定和解锁方法:
锁定方法:
fileLock = fileChannel.tryLock();
if (fileLock != null)
System.out.println("File is locked");
fileLock.release();
现在,这两种方法被两个并发进程访问。如果其中一个进程崩溃,在解锁之前,另一个进程无法访问该文件直到JVM关闭。有没有人能帮我,是否可能(以及如何)指定锁定文件的某个时间限制。
使用单例模式。这样只有一个线程才能访问您的文件。
release()
调用是否被包含在try{...} catch(){...}
后的finally
块中?为什么其中一个线程会默默崩溃?还有一个问题。您说:不同的进程,这意味着不同的 Java 线程还是真正不同的操作系统进程? - Grooveek