我在 Java 中实现了一个阻塞文件锁,当我试图获取一个锁时,我有一个类似这样的代码块:
while(!fileLockIsAcquired())
{
Thread.sleep(100); //is this cool?
tryAcquireFileLock();
}
100 毫秒的值对我来说似乎过于死板,我想知道如果我使用Thread.sleep(0)
或Thread.yield()
. 在我看来,Yield 似乎可以更好地传达意图,但我不确定我是否完全理解 JVM 是如何解释它的。一种选择明显优于另一种吗?
该文件是通过没有阻塞锁定方法的Web服务访问的远程文件,因此我必须自己实现阻塞。