我有关于同步列表的一般问题。
比方说,在构造函数中,我createing列表java - 一般synchronizedList问题
List synchronizedList = Collections.synchronizedList(list);
,我有一个方法将对象添加到列表中。
public void add(String s){
synchronizedList.add(s)
}
还有另一个线程每隔几秒检查一次是否有几行,将其转储到文件并将其全部删除。
现在让我说我迭代每一行并将其保存到数据库。在所有迭代之后,我清除列表中的 。
多线程支持如何帮助我?
我可以在其他线程中的clear()之前添加一个元素到列表中。
除非我自己管理锁(我不真的需要一个同步列表)。
由于所有三个答案都表示,同步列表意味着该列表上的所有操作都保证是原子的或保证对各个方法调用的串行访问。我不得不问我的同事这是什么意思。所以它意味着List上的操作像(从上面的代码片段)'synchronizedList.size()'和'synchronizedList.add(s)'不能并行。对于正在阅读此主题的某些人而言,这并不明显。所以虽然增加了帮助其他谁不明白。谢谢@ WhiteFang34,@ jb-nizet和@khachik的解释如下。 – 2014-12-17 18:34:03