快速失敗的「快」不是體如今迭代器訪問集合的時候,兩個線程間的快慢。而是體如今,當A線程訪問集合時,有另一個線程B改變了該集合的結構,(添加/刪除一個或多個映射關係),除非經過迭代器自己的 remove 方法,其餘任什麼時候間任何方式的修改 都會致使 A線程會「當即」拋出ConcurrentModificationException 異常,迭代「快速終止」。
與「快速失敗」相對的有一個概念是「安全失敗」。Iterator的安全失敗是基於對底層集合作拷貝,所以,它不受源集合上修改的影響。也就是一樣的狀況下,A集合不會拋出ConcurrentModificaitonException異常,迭代會繼續。安全
感謝:瘦子4(牛客網)線程