您好,登錄后才能下訂單哦!
如何理解JDK中的fail-fast機(jī)制,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
fail-fast有如其名:它是java集合的一種錯(cuò)誤檢測機(jī)制,當(dāng)多個(gè)線程對集合進(jìn)行結(jié)構(gòu)上的改變操作時(shí)候,有可能會觸發(fā)
在系統(tǒng)設(shè)計(jì)中,快速失效系統(tǒng)一種可以立即報(bào)告任何可能表明故障的情況的系統(tǒng)。快速失效系統(tǒng)通常設(shè)計(jì)用于停止正常操作,而不是試圖繼續(xù)可能存在缺陷的過程。這種設(shè)計(jì)通常會在操作中的多個(gè)點(diǎn)檢查系統(tǒng)的狀態(tài),因此可以及早檢測到任何故障??焖偈∧K的職責(zé)是檢測錯(cuò)誤,然后讓系統(tǒng)的下一個(gè)最高級別處理錯(cuò)誤。
其實(shí),這是一種理念,fail-fast就是在做系統(tǒng)設(shè)計(jì)的時(shí)候先考慮異常情況,一旦發(fā)生異常,直接停止并上報(bào)。
舉一個(gè)最簡單的fail-fast的例子:
public int divide(int divisor,int dividend){ if(dividend == 0){ throw new RuntimeException("dividend can't be null"); } return divisor/dividend; }
上面的代碼是一個(gè)對兩個(gè)整數(shù)做除法的方法,在divide方法中,我們對被除數(shù)做了個(gè)簡單的檢查,如果其值為0,那么就直接拋出一個(gè)異常,并明確提示異常原因。這其實(shí)就是fail-fast理念的實(shí)際應(yīng)用。
看完上述內(nèi)容,你們掌握如何理解JDK中的fail-fast機(jī)制的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。