`Iterator` 并不是工作在独立线程中,也没有所谓的 `mutex` 锁。它本质上只是一个用于遍历集合的对象。很多集合类在创建迭代器后,会用一个计数器记录集合结构是否发生变化。迭代过程中,迭代器会检查这个计数器:如果发现集合在遍历期间被其他方式修改了,就会认为当前迭代结果不再可靠,于是抛出异常。
Iterator并不是工作在独立线程中,也没有所谓的mutex锁。它本质上只是一个用于遍历集合的对象。很多集合类在创建迭代器后,会用一个计数器记录集合结构是否发生变化。迭代过程中,迭代器会检查这个计数器:如果发现集合在遍历期间被其他方式修改了,就会认为当前迭代结果不再可靠,于是抛出异常。