成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

fail-fast和fail-safe

魏明 / 1689人閱讀

摘要:一什么是機(jī)制在用迭代器遍歷集合時(shí)當(dāng)集合的結(jié)構(gòu)被修改會(huì)拋出異常二什么情況下集合的結(jié)構(gòu)會(huì)被修改單線程環(huán)境集合在遍歷的過程中如果要對集合進(jìn)行增刪操作沒有調(diào)用迭代器的方法而是用的集合自身的方法則可能會(huì)產(chǎn)生事件多線程環(huán)境下當(dāng)一個(gè)線程在遍歷某個(gè)集合

一.什么是fail-fast機(jī)制?

在用迭代器遍歷集合時(shí),當(dāng)集合的結(jié)構(gòu)被修改,會(huì)拋出ConcurrentModificationException異常

二.什么情況下集合的結(jié)構(gòu)會(huì)被修改?

1.單線程環(huán)境
集合在遍歷的過程中,如果要對集合進(jìn)行增刪操作,沒有調(diào)用迭代器的方法,而是用的集合自身的方法,則可能會(huì)產(chǎn)生fail-fast事件
2.多線程環(huán)境下
當(dāng)一個(gè)線程在遍歷某個(gè)集合的過程中,另一個(gè)線程對集合的結(jié)構(gòu)進(jìn)行了修改,則可能產(chǎn)生fail-fast事件

三.fail-fast機(jī)制是如何檢測的?

迭代器在進(jìn)行初始化的時(shí)候會(huì)將當(dāng)前的modCount值賦值給exceptedmodCount變量,在每次迭代時(shí)都會(huì)校驗(yàn)modcount和exceptedCount是否相等,如果不相等就會(huì)拋出java.util.ConcurrentModificationException異常.

四.什么是安全失敗?

采用安全失敗機(jī)制的集合容器,在遍歷時(shí)不是直接在集合內(nèi)容上訪問的,而是先復(fù)制原有集合內(nèi)容,在拷貝的集合上進(jìn)行遍歷,所以對原集合的修改并不會(huì)被迭代器檢測到

五.快速失敗和安全失敗分別對應(yīng)哪些類?

java.util包下的集合都是快速失敗的
java.util.concurrent包下的集合都是安全失敗的

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69700.html

相關(guān)文章

  • 快速失敗(fail-fast)與安全失敗(fail-safe)

    摘要:注意,迭代器的快速失敗行為無法得到保證,因?yàn)橐话銇碚f,不可能對是否出現(xiàn)不同步并發(fā)修改做出任何硬性保證??焖偈〉鲿?huì)盡最大努力拋出。 fail-fast與fail-safe 在Collection集合的各個(gè)類中,有線程安全和線程不安全這2大類的版本。 對于線程不安全的類,并發(fā)情況下可能會(huì)出現(xiàn)fail-fast情況;而線程安全的類,可能出現(xiàn)fail-safe的情況。 一、并發(fā)修改 當(dāng)一...

    imtianx 評論0 收藏0
  • fail-fastfail-safe在Java集合中的應(yīng)用

    摘要:與在迭代器中的設(shè)計(jì)在中,最典型的與就是關(guān)于迭代器的設(shè)計(jì)。缺點(diǎn)是,迭代器不能正確及時(shí)的反應(yīng)集合中的內(nèi)容,而且一定程度上也增加了內(nèi)存的消耗。 fail-fast與fail-safe簡介 如果一個(gè)系統(tǒng),當(dāng)有異常或者錯(cuò)誤發(fā)生時(shí)就立即中斷執(zhí)行,這種設(shè)計(jì)稱之為fail-fast。相反如果我們的系統(tǒng)可以在某種異?;蛘咤e(cuò)誤發(fā)生時(shí)繼續(xù)執(zhí)行,不會(huì)被中斷,這種設(shè)計(jì)稱之為fail-safe。 fail-fas...

    Drummor 評論0 收藏0
  • 帶你了解集合世界的fail-fast機(jī)制 CopyOnWriteArrayList 源碼詳解

    摘要:體現(xiàn)的就是適配器模式。數(shù)組對象集合世界中的機(jī)制機(jī)制集合世界中比較常見的錯(cuò)誤檢測機(jī)制,防止在對集合進(jìn)行遍歷過程當(dāng)中,出現(xiàn)意料之外的修改,會(huì)通過異常暴力的反應(yīng)出來。而在增強(qiáng)循環(huán)中,集合遍歷是通過進(jìn)行的。 前言 學(xué)習(xí)情況記錄 時(shí)間:week 2 SMART子目標(biāo) :Java 容器 記錄在學(xué)習(xí)Java容器 知識(shí)點(diǎn)中,關(guān)于List的重點(diǎn)知識(shí)點(diǎn)。 知識(shí)點(diǎn)概覽: 容器中的設(shè)計(jì)模式 從Array...

    young.li 評論0 收藏0
  • 面試官:說說快速失敗安全失敗是什么

    摘要:我們都接觸這些集合類,這些在包的集合類就都是快速失敗的而包下的類都是安全失敗,比如。安全失敗明白了什么是快速失敗之后,安全失敗也是非常好理解的。最后說明一下,快速失敗和安全失敗是對迭代器而言的。 什么是快速失?。╢ail-fast)和安全失?。╢ail-safe)?它們又和什么內(nèi)容有關(guān)系。以上兩點(diǎn)就是這篇文章的內(nèi)容,廢話不多話,正文請慢用。 我們都接觸 HashMap、ArrayLis...

    calx 評論0 收藏0

發(fā)表評論

0條評論

魏明

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<