我有一个文件模拟10X3阵列。第一列是一个序列号,女巫是独一无二的,所以我可以分辨每一行。我问是否有可能同步2个线程写入同一个文件,根据它们的行来锁定它们(如果线程2在同一行写入线程1想写入的话,线程1不能访问文件,它们可以同时写入其他行)。我有一个包含10个ReentrantLock()项目的Lock数组,每个Lock项目都会锁定相应的id行(他们在为文件搜索ID之前获取锁定)。简单的方法是将文件加载到数组中。但我想知道如果我能在文件中实现这一点。我不深入了解Java中的文件是如何工作的,但我主要关心的是,当他们在文件中同时写入时,最后结束的线程将给出文件的最终值,因此迄今为止所做的任何更改由其他线程将被删除,因为该文件需要保存。同时写入JAVA中的多个线程的单个文件,按行同步
-1
A
回答
1
有一个文件,这是不可能的,我认为你提到的原因。
如果你真的想用纯文本文件做到这一点,你可以为每一行创建一个文件。另一种选择是使用Document。一旦完成所有工作,将文档解析为纯文本文件应该很容易。
最简单的解决方案是在我看来使用数据库,特别是如果有机会在稍后增加数组的大小。
+0
我想我会去与阵列。当然,一个数据库将是最好的想法,但我想要一个项目。我正在考虑这两种方式(因为我们有文件而不是数据库)。也许当我完成它时,我会测试其他方法并发布一些结果:) – 2015-04-02 16:01:16
相关问题
- 1. 将几个线程同步写入到java中的同一个文件中
- 2. Java多个文件不同的线程
- 3. 为Clojure中的多个阅读器/单个写入器同步线程
- 4. 多个线程可以同时将数据写入文件吗?
- 5. 同步.NET中的多个线程4
- 6. Java - 多线程和同步
- 7. 同步多线程JAVA
- 8. 从ruby中的多个线程写入单个文件
- 9. java中的线程/同步
- 10. ArrayList,线程和同步 - 如何准确同步多个线程
- 11. 在同一文本文件上写入Java多个程序
- 12. 运行一个多线程程序同步非常慢Java
- 13. 多个RollingFileAppenders写入同一个文件
- 14. 如何从两个程序同时写入单个xml文件?
- 15. 是否可以从多个线程写入同一文件的不同部分?
- 16. 从多个线程写入不同文件后获取ferror()
- 17. 多线程同步执行
- 18. 如何使用DMA在一个线程中同时写入不同磁盘上的多个文件?
- 19. 多线程Java的同步化
- 20. Java - 在时间基础上同步多个线程
- 21. Java同步线程
- 22. Java线程同步
- 23. Java线程“同步”
- 24. 在java中同步多线程
- 25. 的Java同步和线程
- 26. 线程同步的Java
- 27. Java的线程池同步
- 28. 在java中同步线程
- 29. 在Java线程中同步
- 30. android java从不同的线程同时读取/写入textview
为什么你需要同时写入文件?按顺序执行这些更改会不会更简单? – 2015-04-02 15:28:31
我不相信Java的'OutputStream'支持像这样通过文件中途写入。可能还有另一种方法可以做到这一点,但在我10年的Java行业经验中,这从来没有必要或实用。另一件需要考虑的事情是磁盘总是比CPU慢,所以多线程写入不会让你获得任何加速。我认为,只有在将多个文件写入多个独立磁盘的情况下才能获得加速。 – CodeBlind 2015-04-02 15:29:58
[This](http://stackoverflow.com/q/7565034/2675154)对于C++来说是一个类似的问题,但也许答案给你一些一般的见解。 – honk 2015-04-02 15:32:58