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