问题标签 [atomic-long]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
60 浏览

java - 哪个班级应该负责获得 AtomicLong

我有一个多线程应用程序,我需要确保所有线程都引用最新版本的 long。我正在考虑为此目的使用 AtomicLong。AtomicLong 将在一个类中,其他类将需要获取值并设置值。

这样做是否可以,或者 getter 是否应该是 AtomicLong 本身,并且有人在 AtomicLong 上调用 .get() 而不是这个类持有为另一个类调用它的变量。根据我的阅读,这些 getter setter 不需要同步,但不确定是否只有 AtomicLong 是返回类型。

这个类确实有它所拥有的附加信息,例如统计信息和附加功能。我只是包含了这个代码片段作为一个例子

0 投票
2 回答
104 浏览

java - 如何保证 AtomicLong addAndGet 结果的正确性

我想在我的多线程下载程序中计算当前百分比。但是有一个奇怪的问题。第二次下载时的lastDownloadSize必须是lastDown的write和lastDownloadSize之和。 例子

有我的代码

0 投票
1 回答
285 浏览

sequence - Hazelcast getAtomicLong 是否总是产生独特的价值?

我想从 Mongodb 中的某个值开始生成序列值。相反,我使用 hazelcast AtomicLong 生成了序列值。但是,在保存 mongodb 数据时,出现重复键错误。这是什么原因?

0 投票
1 回答
84 浏览

java - 为什么我自己的 AtomicLong 比 JDK 中提供的要慢?

我正在编写自己的AtomicLong类,但我发现我拥有的功能比 Unsafe 类中提供的功能慢得多。我想知道为什么?

以下是我拥有的代码:

完成上述代码大约需要 3000 毫秒。但是,如果我使用下面的代码而不是this.unsafe.getAndAddLong(this, this.offset, 1);.

我浏览了源代码,getAndAddLong发现它和上面的代码几乎一样,所以我应该错过什么?

0 投票
1 回答
1922 浏览

java - 如何在只有 2 个 Hazelcast 集群节点的 Hazelcast CP 子系统上使用 AtomicLong?

我正在更新到最新的 Hazelcast 版本 [3.12],我在获取 AtomicLong 实例时遇到了问题。新版本,HZ 引入了 CAP Theorem 的概念,授予 Consistency 和 Partition Tolerance,但问题是 CP 子系统必须至少有 3 个成员。

如何配置 CP 子系统来为我提供一个只有两个 hazelcast 节点的 atomicLong 实例?

如果我只使用一个节点启动我的应用程序,则会打印以下消息:

MetadataRaftGroupManager.log:65 [127.0.0.1]:6000 [dev] [3.12] CP 子系统正在等待 3 个成员加入集群。当前成员数:1

我将只有两个节点,因此,CP 子系统不允许我使用 atomicLong,因为它将永远等待至少 3 个节点。

我刚刚调用的 3.11 版本hazelcast.getAtomicLong("count")。我该如何处理?

0 投票
0 回答
33 浏览

java - AtomicLong 的 compareAndSet 是否保证线程安全

这是我上一个问题的延续——重构同步块保持执行顺序不变

我在一个我想要取消的功能中有一个同步块,还有其他东西可以减少争用并提高性能。

我正在尝试用 AtomicLong 替换_lastStartTime

compareAndSet然而,尽管大多数线程是按顺序进入和退出块的,但还是有一些线程搞砸了:

不确定我的逻辑是否正确同步执行或我做错了什么。任何帮助将不胜感激。

0 投票
1 回答
73 浏览

java - AtomicLong.set vs LongAccumulator.accumulate 性能 java?

我有一个高并发写入 AtomicLong 变量的用例。我只需要在这个变量中设置当前 epoc 时间。最快的方法是什么?

是否LongAccumulator.accumulate有更好的替代方法AtomicLong.set,是否有任何统计数据可以告诉每秒有多少并发请求,如果我只想将变量设置为某个值而不进行任何添加或计算,这会更好吗?

0 投票
1 回答
96 浏览

java - java中长值的原子赋值

我有一个用例来更新长变量中事件的纪元时间。这个变量也将有大量的并发读取和写入。以下是详细要求:

  1. 非常快速地完成读取和写入
  2. 读取可能会或可能不会返回最新结果,但不应返回损坏的结果
  3. 写入是对新纪元值的简单赋值,不需要加法、减法或计算

对于我的用例,哪个替代方案是更好的选择:

  1. 带有 volatile 关键字的原始 long
  2. 原子长
  3. 具有 accumulatorFunction 的 LongAccumulator(x,y) -> y
  4. 两个不同的变量 - 一个仅用于读取值,另一个 volatile 变量仅用于写入值,写入变量的值在某个时间间隔内被复制到读取变量
0 投票
1 回答
180 浏览

redis - Redisson getAtomicLong - 如果密钥不存在怎么办?

我正在使用 Redisson 在 Java 中构建缓存实现。我想用它来缓存一个数值。所以我像这样使用 getAtomicLong() :

但是,文档对这里发生的事情的描述不是很清楚,所以我有几个问题:

  1. 假设缓存中尚不存在“my-key”。getAtomicLong() 返回什么?
  2. 如果“my-key”不存在,userNumber.get() 返回什么?