다음과 같이 내가 파일 잠금 및 잠금 해제 방법을 가지고자바 - 파일 공유 파일 잠금 문제
잠금 방법,
fileLock = fileChannel.tryLock();
if (fileLock != null)
System.out.println("File is locked");
잠금 해제 방법,
fileLock.release();
지금,이 두 가지 방법이 있습니다 두 개의 동시 프로세스에 의해 액세스됩니다. 이제 잠금 해제 전에 하나의 프로세스가 충돌하는 경우 JVM이 닫힐 때까지 다른 프로세스가 파일에 액세스 할 수 없습니다. 아무도 나를 도울 수 있습니까, 가능한지 (그리고 어떻게) 파일을 잠그기위한 시간 제한을 지정하는 것입니까?
'try {...} catch() {...}'다음에'release()'호출이'finally' 블록으로 묶여 있습니까? 왜 스레드 중 하나가 자동으로 충돌합니까? 한 가지 더 묻습니다. 당신은 말 : 다른 프로세스, 즉 다른 자바 스레드 또는 정말 다른 OS 프로세스를 의미합니다. – Grooveek
@Arpssss : "프로세스"란 "스레드"를 의미합니까? 프로세스가 충돌하면 JVM이 종료되었음을 의미합니다. 나는 당신의''fileLock.release()''가''finally'' 블록에 들어가야 할 수도 있다고 생각합니다. – Ash
@Ash, 아니, 마침내. 그러나 간단히하기 위해 나는 그것을 적어 두지 않았다. 그리고 스레드가 아니라 프로세스가 있습니다. 감사합니다. – Arpssss