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