Fail-fast 和 Fail-safe 机制
生活随笔
收集整理的這篇文章主要介紹了
Fail-fast 和 Fail-safe 机制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
fail-fast 和 fail-safe 的區(qū)別
從字面意思來看 fail-fast 是快速失敗,fail-safe 是安全失敗,這都是集合類對(duì)于并發(fā)讀寫時(shí)的一種應(yīng)對(duì)機(jī)制。
- fail-fast,廣泛應(yīng)用于 java.util 下的集合類中,其機(jī)制為在使用迭代器遍歷的過程中,如果此時(shí)集合對(duì)象的結(jié)構(gòu)被改變(即插入、刪除元素時(shí), modCount 的值發(fā)生變化。替換元素的值不會(huì)發(fā)生改變)后,會(huì)拋出 ConcurrentModificationException (并發(fā)修改異常)的異常。這是一種不支持并發(fā)讀寫的機(jī)制,優(yōu)點(diǎn)是不會(huì)在遍歷時(shí)額外消耗資源;且保證讀到的數(shù)據(jù)時(shí)最新的數(shù)據(jù)。
- fail-safe,廣泛應(yīng)用于 java.concurrent 下的集合類中,其機(jī)制為在使用迭代器遍歷時(shí),會(huì)創(chuàng)建一個(gè)此時(shí)集合的視圖來供遍歷,而不是在源數(shù)據(jù)上進(jìn)行遍歷,所以在遍歷時(shí)如果集合對(duì)象的結(jié)構(gòu)被改變,不會(huì)拋出異常。這是一種支持并發(fā)讀寫的機(jī)制,缺點(diǎn)是每次遍歷時(shí)都會(huì)創(chuàng)建視圖,會(huì)消耗更多的資源;且很有可能讀不到最新的值。
總結(jié)
以上是生活随笔為你收集整理的Fail-fast 和 Fail-safe 机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php配置mysql集群_mysql的集
- 下一篇: 如何计算像素当量_基于非线性标定的桥梁裂