私は Java でブロッキング ファイル ロックを実装しています。ロックを取得しようとすると、次のようなコード ブロックがあります。
while(!fileLockIsAcquired())
{
Thread.sleep(100); //is this cool?
tryAcquireFileLock();
}
この 100 ミリ秒という値は私には厳しすぎるように思えThread.sleep(0)
ますThread.yield()
。Yield は意図をよりよく伝えているように思えますが、JVM によってどのように解釈されるかを完全に理解しているかどうかはわかりません。1 つのオプションが他のオプションよりも明らかに優れているか?
このファイルは、ブロッキング ロック メソッドを持たない Web サービスを介してアクセスされるリモート ファイルであるため、ブロッキングを自分で実装する必要があります。