java - 遍历同步集合

标签 java multithreading vector synchronized

我在这里问了一个关于遍历 Vector 的问题,我得到了一些很好的解决方案。但我读到了另一种更简单的方法。我想知道这是否是好的解决方案。

synchronized(mapItems) {
    Iterator<MapItem> iterator = mapItems.iterator();
    while(iterator.hasNext())
        iterator.next().draw(g);
}

mapItems 是一个同步集合:Vector。这是否使 Vector 的迭代免受 ConcurrentModificationException 的影响?

最佳答案

是的,它将使其免受 ConcurrentModificationException 的影响,但代价是一切本质上都是单线程的。

关于java - 遍历同步集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438966/

相关文章:

java - 使用一个类(classA)中的方法,其中使用反射api java加载另一个类(classB)

c++ - 如何在 Qt 中等待线程完成而不阻塞其执行?

c++ - 计算 vector vector 子集的最佳方法

c++ - 无法指定 vector 的初始大小

java - 如何在 Eclipse 3.8.1 RCP 应用程序中的帮助菜单下自定义“关于”条目的文本和按钮

Java 8 : read files with special characters in name

java - 主机的动态地址移到另一个主机后,Java REST Client仍连接到旧主机

c - 唤醒多个条件变量

c++ - VC++中的多线程程序

r - 将值 append 到 R 中的空向量?