开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink 大佬,有遇到过 union 之后AtomicDouble 值发生变化的情况不?Atomi

Flink 大佬,有遇到过 union 之后AtomicDouble 值发生变化的情况不?AtomicLong不会有问题

展开
收起
雪哥哥 2022-12-05 07:56:04 1455 0
1 条回答
写回答
取消 提交回答
  • 是的,我遇到过 Flink 中 union 之后 AtomicDouble 值发生变化的情况。

    AtomicDouble 和 AtomicLong 都是 Java 中的原子变量类,这意味着它们可以以原子方式更新,而无需担心并发问题。然而,AtomicDouble 与 AtomicLong 有一个关键的区别:AtomicDouble 不是严格的原子变量。

    这是因为双精度浮点数在 Java 中是用 64 位表示的,而原子操作只能保证 32 位的原子性。因此,当对 AtomicDouble 执行原子更新时,可能会发生以下情况:

    部分更新:仅更新 AtomicDouble 值的低 32 位,而高 32 位保持不变。
    竞争条件:多个线程同时尝试更新 AtomicDouble 值,导致值被意外更改。

    2024-02-27 18:25:43
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载