差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 | 下次修改 Both sides next revision | ||
java:effective_java:exceptions:strive_for_failure_atomicity [2022/03/26 22:52] tony [Introduction] |
java:effective_java:exceptions:strive_for_failure_atomicity [2022/03/26 22:57] tony [Introduction] |
||
---|---|---|---|
行 12: | 行 12: | ||
最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transactio,或操作檔案前先複製一份,有問題在還原檔案等等。\\ | 最後一個方法,就是要實做一段recovery code,好讓發生問題時,可以rollback回原本的狀態。像是使用資料庫的Transactio,或操作檔案前先複製一份,有問題在還原檔案等等。\\ | ||
\\ | \\ | ||
- | 使用這些方法,都要注意一下"代價"與"多執行緒存取"的問題。像要複製物件或準備環原點,都會存在著性能開銷,且程式碼往往會複雜一些些;比較低成本的Immutable object不一定適用於各種情況;precheck則大部分情況都有可能要注意多執行緒的存取,假如是依賴目標物件的狀態做precheck的話。 | + | 使用這些方法,都要注意一下"代價"與"多執行緒存取"的問題。像要複製物件或準備環原點,都會存在著性能開銷,且程式碼往往會複雜一些些;比較低成本的Immutable object不一定適用於各種情況;precheck則大部分情況都有可能要注意多執行緒的存取,假如是依賴目標物件的狀態做precheck的話。\\ |
+ | \\ | ||
+ | 另外,書中有建議,如果無法滿足failure-atomic的method,"建議"要寫註解讓用的人知道。 | ||
===== Note ===== | ===== Note ===== |