2012-02-14 59 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