迭代同步集合

She*_*lef 8 java multithreading vector synchronized

我在这里问了一个关于迭代的问题Vector,我已经得到了一些很好的解决方案.但我读到了另一种更简单的方法.我想知道它是不是很好的解决方案.

synchronized(mapItems) {
    Iterator<MapItem> iterator = mapItems.iterator();
    while(iterator.hasNext())
        iterator.next().draw(g);
}
Run Code Online (Sandbox Code Playgroud)

mapItems是一个同步集合:Vector.这是否使得Vector从安全的迭代ConcurrentModificationException?

Ale*_*yak 3

是的,这将使它安全,而不会以ConcurrentModificationException牺牲所有本质上是单线程的为代价。