如何解决为什么由于另一个进程正在使用该文件而无法打开RandomAccessFile?
我有一个Java程序,该程序使用RandomAccessFile
和协作锁定(即RandomAccessFile.getChannel().lock()
)实现本地数据存储。情况是,程序可能会访问同一文件的多个进程,这就是为什么我使用协作锁定来同步它们,但另一个程序不应使用或锁定这些文件的任何进程。
我的实现通常可以正常工作(特别是对于使用Linux的我来说),但是偶尔我会收到用户的报告,其中new RandomAccessFile(path,"rw")
在Windows上失败,并且Windows特定于Windows,“该进程无法访问文件因为该文件被另一个进程使用”错误。
该错误似乎是零星的,并且我一直找不到任何方法来重现它,更不用说可靠了,因此,我无法提供一个最小的例子。相反,我的问题是:在Windows的什么条件下 甚至会发生此错误?显然,RandomAccessFiles
应该在进程之间共享,锁定应该是协作的,并且不应使用这些文件的其他任何程序都可能使用强制性锁。我看不出如何留出引发此错误的空间。我想有些用户可能正在运行一些确实很奇怪的软件,但是这些软件看起来很奇怪,但是这些错误似乎太普遍了,以至于它不是什么特别的东西。防病毒程序可能是原因吗?有办法避免吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。