有没有办法让多个线程同时对RandomAccessFile
执行读/写操作,即并发?我是否必须使用任何同步对象,还是可以在不使用任何同步的情况下完成?如何允许多个线程同时访问Java中的随机访问文件
0
A
回答
0
您必须使用某种同步方法。文件中只能有一个文件位置。 如果您尝试没有同步的并发访问,最好的行为是不可预知的。
1
正如Erik所说,必须有一个同步机制。否则,这成为读者/作家的问题。
如果您可能想要加快速度,可以将多个读取结合在一起,并且每当需要编写时,停止新的读取请求,完成现有请求,获取锁定,写入文件,释放锁定。
ReentrantReadWriteLock可能会帮助你。
1
随机存取文件的行为与随机存取存储器相同 - 它对各种数据竞争都是开放的。因此,只要你不是不同的线程在文件的不同区域工作,你绝对必须使用同步。
相关问题
- 1. 删除随机访问文件Java中
- 2. 使用随机访问文件Java中
- 3. 同时访问多个线程的SQLitedatabase
- 4. 多线程Java服务器:允许一个线程访问另一个
- 5. 多线程文件访问
- 6. 多线程访问文件
- 7. 随机访问文件
- 8. php只允许访问某个文件?
- 9. Java:多线程链表访问同步
- 10. 如何允许访问课程?
- 11. Java随机访问地图
- 12. J2ME中的文件随机访问
- 13. “随机”访问C#中的大文件
- 14. 嘲笑一个随机访问文件
- 15. .htaccess允许特定的文件访问
- 16. 将IIS配置为允许多个用户同时访问
- 17. 可以同时访问最多3个线程的java多线程方法
- 18. java中的多线程访问
- 19. Ajax - '访问控制 - 允许来源'不允许访问本地主机'
- 20. 随机访问多个文件和文件缓存
- 21. 如何从多个线程同时访问MySQL
- 22. 只允许通过CGI访问文件
- 23. 不允许访问mdb文件
- 24. IIS不允许访问JavaScript文件
- 25. 允许访问使用htaccess文件夹
- 26. 不允许访问数据库文件。
- 27. 拒绝访问文件夹,但允许访问该文件夹内的文件
- 28. 多线程访问同一个文本文件
- 29. 访问 - 控制 - 允许来源不允许访问 - >来源*
- 30. 访问控制 - 允许来源不允许访问http:// localhost
看看http://stackoverflow.com/questions/464784/java-reentrantreadwritelocks-how-to-safely-acquire-write-lock你最好的选择是使用像http://www.sqlite.org这样的数据库或其他。 – 2013-03-11 13:57:43