返回一个列表,我发现这个在dos.oracle.com为什么我需要同步由Collections.synchronizedList
公共静态列表synchronizedList(名单列表)
返回的同步(线程安全)列表支持指定的 列表。为了保证串行访问,通过返回列表完成对后备列表访问的所有访问是至关重要的。 当务之急是用户迭代它时,返回 名单上手动同步:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
我的问题是:为什么我必须同步列表进行迭代,如果Collections.synchronizedList();
应该返回已经同步列表?
我只是在两个线程访问列表:一个线程只是添加和另一个线程获取和删除。你推荐哪些其他课程用于这种情况?
感谢您的阅读。
我wouldnt使用'Collections.synchronizedList()'。在自己的代码中自己同步可能会更好 – JIV