Gui*_*789 2 java nio file-locking filelock
使用java.nio.channels.FileLock在进程间锁定文件有多安全?据说如果我们有一个独占锁,其他进程就无法访问该文件.但是,关于另一个SO问题的下面答案表明其他进程也必须检查文件锁,以便我们的进程安全.
(a)您是否知道锁定文件不会阻止其他进程接触它,除非它们也使用锁?
所以我测试了我的代码并尝试使用Windows文本编辑器更改了一个我已经锁定的文件,并且我不会受到伤害,但是当我使用Notepad ++进行测试时却没有.
是否有在Java 6中正确锁定文件的解决方案?
Java 在许多平台上FileLock使用建议(非强制)锁.这意味着它可能只对其他也使用的应用程序FileLock(或其他语言中的等效应用程序)提供锁定.
Linux或Windows都没有实现强制锁定.例如:
对于Linux等,文件锁定仅供参考.
对于Windows,根据维基百科:
"对于在Windows中使用文件读/写API的应用程序,在Windows中执行的文件系统强制执行字节范围锁定.对于在Windows中使用文件映射API的应用程序,字节范围锁定不是执行..."
换句话说,Windows上的锁定可以是强制的,也可以是建议的,具体取决于Windows应用程序用于访问文件的API.
使用Java FileLock有多安全?
如果你实际上在询问是否可以安全地假设它FileLock提供了与所有其他应用程序(Java和非Java)相关的强制文件锁定,而不管它们是如何编写的,答案是否定的.做出这个假设是不安全的.
是否有在Java 6中正确锁定文件的解决方案?
只有所有应用程序(Java和其他)合作; 例如,通过使用FileLock或等效.
如果你不能做出这样的假设,就没有使用便携式Java的解决方案.实际上,在大多数(如果不是全部)常见操作系统平台上,根本没有解决方案,AFAIK ......因为平台本身不支持独立于应用程序的强制文件锁定.
| 归档时间: |
|
| 查看次数: |
2318 次 |
| 最近记录: |