有没有一种方法可以允许多个线程同时执行读/写操作RandomAccessFile
,即并发?我必须使用任何同步对象,还是可以在不使用任何同步的情况下完成?
问问题
4181 次
3 回答
1
正如 Erik 所说,必须有一个同步机制。否则,这将成为 Readers/Writers 问题。
如果您可能想加快速度,您可以同时进行多次读取,并且每当您需要写入时,停止新的读取请求,让现有请求完成,获取锁,写入文件,释放锁。
ReentrantReadWriteLock可能会对您有所帮助。
于 2013-03-11T13:56:42.220 回答
1
随机存取文件的行为方式与随机存取存储器相同——它对各种数据竞争开放。因此,只要您不确定不同的线程在文件的不同区域工作,您绝对必须使用同步。
于 2013-03-11T13:58:25.863 回答
0
您必须使用某种同步方法。文件中只能有一个文件位置。如果您尝试没有同步的并发访问,则行为充其量是不可预测的。
于 2013-03-11T13:52:55.317 回答