【发布时间】:2014-03-05 15:06:13
【问题描述】:
一个 java 应用程序有 3 个对象,等等。一个 Student 对象,其中包含有关学生的所有需要的信息。一个包含 Student 对象的列表 ArrayList。还有一个 RandomAccessFile,用于读取学生信息并将其写入文件。
如果多个线程将访问列表、添加、删除和修改学生对象,同时写入磁盘,我应该在添加、删除、修改和写入磁盘时同步哪个对象?学生、ArrayList 还是 RandomAccessFile?如果我选择一个而不是另一个,会有性能增益/损失吗?
在我正在阅读的一本书中,同步是在 Student 对象上完成的,但我在网上找到了同步是在 RandomAccessFile 上完成的源代码?
非常感谢您的澄清
【问题讨论】:
-
你在想什么,为什么?
-
这是标准的
ArrayList,还是Collections.synchronizedList(ArrayList)/CopyOnWriteArrayList?
标签: java multithreading thread-safety