-1

在我的应用程序中,多个进程正在尝试访问文件以进行读写。每个应用程序都有一个线程。我需要确保没有 2 个进程同时访问该文件。我在 JDK 中使用 FileLock。这很好用,当一个进程已获得锁定并且其他进程尝试访问文件(用于读取或写入)时抛出异常,说明文件已被其他进程锁定。

现在我需要确保,对于第二个进程,而不是抛出异常线程应该等到第一个进程释放锁,一旦锁被释放,继续它的工作。

我怎样才能做到这一点。所以,胖子我一直没能想出办法做到这一点。

4

1 回答 1

0

您是否考虑过实施以下类似的方法?

while (true) {
   try to acquire lock - {
     // if the lock is acquired break the loop     

   } catch (Exception) {
     log... exception
     possibly wait for sometime
  }
}
于 2020-03-16T08:10:44.773 回答