例外をスローするJavaにおけるプロセス間のファイルロック

BKました:

Iは、(明らかに異なる2つのPIDで生成された)は、2つの異なったJavaアプリケーションからのファイルのロックを取得するためのFileChannelののtryLockメソッドを使用し、ロックが利用できない場合、戻りのtryLockことが観察ヌル例外をスローするのではなく。

Javadocごとのように: -

https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html#tryLock--

FileChannelののtryLockメソッドは、スレッド間の競合のために例外をスローする必要がありますが、戻りは、プロセス間の競合の場合はNULL。私も、プロセス間の競合のための例外を得ることができるAPIはありますか?

感謝

ジョニ:

私の推測では、別のプロセスによって所有されているファイルロックが一般的なケースであると考えられた、と例外を必要とする例外的な状況がスローされない、です。Lock.tryLockは、それはfalseを返し、どちらかの例外をスローしません。

あなたは、この場合に例外をスローする場合は、それを自分で行うことができます。

    FileLock fileLock = channel.tryLock();
    if (fileLock == null) {
        throw new IllegalStateException("Lock already held by another process");
    }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=365821&siteId=1