微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么由于另一个进程正在使用该文件而无法打开RandomAccessFile?

如何解决为什么由于另一个进程正在使用该文件而无法打开RandomAccessFile?

我有一个Java程序,该程序使用RandomAccessFile和协作锁定(即RandomAccessFile.getChannel().lock())实现本地数据存储。情况是,程序可能会访问同一文件的多个进程,这就是为什么我使用协作锁定来同步它们,但另一个程序不应使用或锁定这些文件的任何进程。

我的实现通常可以正常工作(特别是对于使用Linux的我来说),但是偶尔我会收到用户的报告,其中new RandomAccessFile(path,"rw")在Windows上失败,并且Windows特定于Windows,“该进程无法访问文件因为该文件被另一个进程使用”错误

错误似乎是零星的,并且我一直找不到任何方法来重现它,更不用说可靠了,因此,我无法提供一个最小的例子。相反,我的问题是:在Windows的什么条件下 甚至会发生此错误?显然,RandomAccessFiles应该在进程之间共享,锁定应该是协作的,并且不应使用这些文件的其他任何程序都可能使用强制性锁。我看不出如何留出引发此错误的空间。我想有些用户可能正在运行一些确实很奇怪的软件,但是这些软件看起来很奇怪,但是这些错误似乎太普遍了,以至于它不是什么特别的东西。防病毒程序可能是原因吗?有办法避免吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?