2012-02-14 47 views
2

我有文件锁定和解锁方法如下,爪哇 - 文件共享文件锁定问题

Lock方法,

fileLock = fileChannel.tryLock(); 

if (fileLock != null) 
System.out.println("File is locked"); 

解锁方法,

fileLock.release(); 

现在,这两种方法是由两个并发进程访问。现在,如果一个进程崩溃,在解锁之前,另一个进程无法访问该文件,直到JVM关闭。任何人都可以帮助我,是否有可能(以及如何)指定一些时间限制来锁定文件。

+0

'try {...} catch(){...}'后面是'finally()'块中的'release()'调用。为什么Thread的一个会默默地崩溃?还有一个问题。你说:不同的进程,这意味着不同的Java线程或真正不同的OS进程 – Grooveek 2012-02-14 08:15:53

+0

@Arpssss:“流程”你的意思是“线程”?如果一个进程崩溃,对我来说这意味着JVM _is_关闭。我怀疑你的''fileLock.release()''可能需要进入''finally''块。 – Ash 2012-02-14 08:16:42

+0

@Ash,不,我终于。但是,为了简单起见,我没有写这个。我有过程,而不是线程。谢谢。 – Arpssss 2012-02-14 10:03:00

回答

0

使用单身模式。然后只有一个线程将访问您的文件。

+1

-1。无意义的。没有答案。 OP正在谈论多个*进程。* – EJP 2012-02-14 09:50:31

+0

对不起,显然我不明白这个问题。 – alnasfire 2012-02-14 10:43:35