快速失败我能理解,迭代过程中,集合被其他线程修改了,会抛出异常,这叫失败。
那安全失败迭代器呢,怎么失败了,哪里失败了,不是没抛异常吗?
那安全失败迭代器呢,怎么失败了,哪里失败了,不是没抛异常吗?
1
hidemyself Jan 16, 2023
fail-safe,为什么要翻译成安全失败
|
2
TWorldIsNButThis Jan 16, 2023
@hidemyself 很正常,毕竟 out of memory 可以翻译成内存溢出
|
3
geelaw Jan 16, 2023 via iPhone
搜索了一下,是神秘的奇葩翻译,fail-safe 的正译不“安全失败”,它的意思是“在非正常情况下仍然 safe”,可以译作“防失败”“防呆”“万全”“万无一失”“保险”……
根据资料,Java 集合的 fail-safe 遍历是让迭代器总是与创建时刻的集合状态关联,即被迭代集合不可变,对于可变集合的实现就是先把集合复制一次。 此外,fail-fast 更好的翻译是“尽早报错”。 |
4
iseki Jan 16, 2023
这不应该叫“失败安全”吗
|
5
xuanbg Jan 16, 2023
反正这个词就很奇葩,不仅仅是翻译奇葩,原文也奇葩。什么叫 fail-safe ,原意应该是指一种可控的,可预期的失败,或者,就是不会导致程序异常的失败。这个用 safe 来表述就很灵性……
|