问题标签 [atomicinteger]
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.
java - 在多个线程中更新 AtomicInteger 变量时未获得预期结果
在这段代码中,我使用 10 个线程更新 AtomicInteger 变量。我希望Counter.getInstance().holder.n的最终结果是 1000000,但它会打印出像 991591 这样的随机数。我的代码有什么问题?
java - 应用了java AtomicInteger accumAndGet
我有一个将值存储为 AtomicInteger 的 Counter 类。该类应该是线程安全的。我有方法boolean consume(int number)
应该递减计数器并返回true
if counter >= number
,并且不应该更改计数器并返回false
ifcounter < number
而且我不知道该功能是否适用。我找到了以下解决方案
accumulateAndGet
但是sais的javadoc :
该函数应该没有副作用,因为当尝试更新由于线程之间的争用而失败时,它可能会被重新应用。
所以,我的解决方案有副作用。使用安全吗?如果没有,我怎样才能得到相同的结果?
android - UI 线程绑定的 AtomicInteger
我一直在阅读有关 SMP 机器(x86/ARM)和编译器重新排序以提高效率的信息。现在我想创建一个计数器,变量作为 ActivityLifecycleCallbacks 实现的私有成员存在。对这个变量的操作是在来自 Android 的回调上执行的(它总是在 UI 线程上)。
现在因为“x++”不是原子语句。我需要使用 AtomicInteger 吗?即使变量总是只能在 UI 线程上访问?
atomic - Hazelcast AtomicLong 数据丢失当多个成员离开时
当多个成员从集群断开连接时,Hazelcast 失败。我的场景是如此基本,我的配置有 3 个 bakcup 选项(它不起作用)。我在一个集群中有 4 个成员,我使用 AtomicLong API 来保存我的 key->value。当所有成员都还活着时,一切都是完美的。但是,当我同时杀死 2 个成员(无需等待一段时间)时,会发生一些数据丢失。我的会员数总是4。有什么办法可以避免这种数据丢失?
谢谢。
java - 这种结构有意义吗?
面对一个带有此代码的项目:
这里我对三行代码感兴趣:
考虑到多线程和 AtomicInteger 变量的类型,这种情况是否有意义?或者这是一个毫无意义的检查?有趣的是,IntellijIdea 并没有强调这种结构毫无意义。
java - 需要了解多线程环境下AtomicInteger代码使用中的问题
在一次采访中,有人问我一个编码问题,我必须在该代码中找到问题并提出适当的解决方案。
请在下面找到整个代码:
此代码运行正常。但问题是,如果线程数增加或者我运行 For 循环近 10000 次,这段代码中就会出现一些问题。
我试图找出问题所在,但找不到问题。
java - 原子整数的 compareandexchange() 与 compareandset()
在研究 AtomicInteger 时,我发现这个 API 提供了两种方法。
比较和交换:
如果当前值(称为见证值)== expectedValue(具有由
VarHandle.compareAndExchange(java.lang.Object...)
比较安集:
以原子方式将值设置为
newValue
if 当前value == expectedValue
,具有由 指定的记忆效果VarHandle.compareAndSet(java.lang.Object...)
。
我无法理解两者之间的区别,请提供合适的示例。
java - 线程安全计数器 - 原子整数不起作用
我有(比如说)10 个线程。所有线程都会增加计数器,并且会记录相同的值。计数器是一个原子整数,但有时我会在计数器中得到重复的值。我期望的是 - 计数器是线程安全的,允许计数器一次由一个唯一的线程递增,一次由一个唯一的线程读取。我应该怎么做?!谢谢
java - 地图
我有int[]
以下内容的输入:
使用Map<Object, AtomicInteger>
,我将其转换为以下对象:
换句话说,我正在计算动态数组的重复元素。
现在我需要找出最大和最小出现次数,我真的被困在进一步的步骤上。
重复元素类的代码如下:
java - 基于偏好的分组不断返回空值
这是我的人班
我正在尝试按偏好对人们进行分组,我最初是在 greenfoot 上编写的,它运行良好。但是,我最近想用 javafx 将它嵌入到 intellij 的一个项目中。当我在测试时,它系统输出null。虽然我也计划循环一个对象列表而不是在列表中添加每个对象 - 我试过了,它一直在发送空值。
我想打印类似的东西