我有一个 C++ 程序,它使用 POSIX 咨询锁来锁定文件。也就是说,它使用POSIXfcntl
系统调用进行锁定操作。我想要一个 Java 程序与那个 C++ 程序互操作,所以我希望我的 Java 程序也使用 POSIX 咨询锁。Java 中的文件锁定应该使用标准FileLock
类。但是 API 文档对于锁定的实现方式含糊不清,这是可以理解的:
此文件锁定 API 旨在直接映射到底层操作系统的本机锁定设施。因此,文件上的锁应该对所有有权访问该文件的程序可见,而不管这些程序是用什么语言编写的。
如果我在 POSIX 操作系统,或更具体地说是 GNU/Linux 系统上运行 Java(Oracles,Open JDK)的通用实现,假设 JavaFileLock
类使用 POSIX 咨询锁是否安全?