【发布时间】:2013-05-11 14:40:30
【问题描述】:
我想了解 Java 的迭代器。为什么它们被设计为抛出并发修改异常?在 C++ STL 中,您可以迭代容器并随时修改内容,但为什么不能在 Java 中进行呢?
编辑:更正的问题。构图不正确。
【问题讨论】:
-
它与多线程无关。修改底层集合会使迭代失效。
-
此异常不一定只在两个线程参与修改对象时发生。 JAVADOC
-
而且他们没有做任何事情来防止并发修改
-
不一定是在多线程代码中抛出的。当您在迭代时修改集合时会发生这种情况。即使在单线程应用程序中也可能出现此异常。
-
你从哪里得到迭代器线程化的想法?你的整个假设是一个很大的非事实陈述......
标签: java c++ exception iterator