美文网首页
Fail-Fast 机制

Fail-Fast 机制

作者: lqsss | 来源:发表于2018-03-10 16:40 被阅读0次

    简介

    fail-fast 机制是 java 集合(Collection)中的一种错误机制。 当多个线程对同一个集合的内容进行操作时,就可能会产生 fail-fast 事件。

    例如:当某一个线程 A 通过 iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程 A 访问集合时,就会抛出 ConcurrentModificationException 异常,产生 fail-fast 事件。

    modCount 实现

    在迭代过程中,判断 modCount 跟 expectedModCount 是否相等,如果不相等就表示已经有其他线程修改了 Map:

    注意到 modCount 声明为 volatile,保证线程之间修改的可见性。

    final Entry<K,V> nextEntry() {
        if (modCount != expectedModCount)
            throw new ConcurrentModificationException();
    

    ConcurrentModificationException异常

    在迭代器创建之后,如果从结构上对映射进行修改,除非通过迭代器本身的 remove 方法,其他任何时间任何方式的修改,迭代器都将抛出 ConcurrentModificationException.

    相关文章

      网友评论

          本文标题:Fail-Fast 机制

          本文链接:https://www.haomeiwen.com/subject/tgkbfftx.html