• 请不要在回答技术问题时复制粘贴 AI 生成的内容
s1084796293
V2EX  ›  程序员

问一下 Java 里的安全失败迭代器中的失败是什么意思

  •  
  •   s1084796293 · Jan 16, 2023 · 2044 views
    This topic created in 1259 days ago, the information mentioned may be changed or developed.
    快速失败我能理解,迭代过程中,集合被其他线程修改了,会抛出异常,这叫失败。
    那安全失败迭代器呢,怎么失败了,哪里失败了,不是没抛异常吗?
    5 replies    2023-01-16 16:35:32 +08:00
    hidemyself
        1
    hidemyself  
       Jan 16, 2023
    fail-safe,为什么要翻译成安全失败
    TWorldIsNButThis
        2
    TWorldIsNButThis  
       Jan 16, 2023
    @hidemyself 很正常,毕竟 out of memory 可以翻译成内存溢出
    geelaw
        3
    geelaw  
       Jan 16, 2023 via iPhone
    搜索了一下,是神秘的奇葩翻译,fail-safe 的正译不“安全失败”,它的意思是“在非正常情况下仍然 safe”,可以译作“防失败”“防呆”“万全”“万无一失”“保险”……

    根据资料,Java 集合的 fail-safe 遍历是让迭代器总是与创建时刻的集合状态关联,即被迭代集合不可变,对于可变集合的实现就是先把集合复制一次。

    此外,fail-fast 更好的翻译是“尽早报错”。
    iseki
        4
    iseki  
       Jan 16, 2023
    这不应该叫“失败安全”吗
    xuanbg
        5
    xuanbg  
       Jan 16, 2023
    反正这个词就很奇葩,不仅仅是翻译奇葩,原文也奇葩。什么叫 fail-safe ,原意应该是指一种可控的,可预期的失败,或者,就是不会导致程序异常的失败。这个用 safe 来表述就很灵性……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1110 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    ♥ Do have faith in what you're doing.