有没有办法允许多个线程同时对RandomAccessFile
执行读/写操作,即同时执行?我是否必须使用任何同步对象,还是可以在不使用任何同步的情况下完成?
答案 0 :(得分:1)
正如Erik所说,必须有一个同步机制。否则这将成为读者/作家的问题。
如果您想要加速,可以一起进行多次读取,无论何时需要写入,都要停止新的读取请求,让现有请求完成,获取锁定,写入文件,释放锁定。< / p>
ReentrantReadWriteLock可能会对您有所帮助。
答案 1 :(得分:1)
随机访问文件的行为与随机存取内存相同 - 它适用于各种数据竞争。因此,只要你没有证明不同的线程在文件的不同区域工作,你绝对必须使用同步。
答案 2 :(得分:0)
您必须使用某种同步方法。文件中只能有一个文件位置。 如果您在没有同步的情况下尝试并发访问,则该行为最多是不可预测的。