cost 197 ms
Java 8 实现比较和交换(不是比较和设置!) - Java 8 impl on Compare And Exchange (Not Compare and Set!)

在 java 17 中, AtomicReference具有类似于compareAndSet的compareAndExchange方法,但它不是返回 boolean,而是返回原子操作之前的值。 我需要它来实现自定义并发结构。 由于项目的限制,我只能使用 Java 8 个特性。 一些挖掘发现VarH ...

以原子方式将新字符连接到 StringBuilder object - Concat new characters to StringBuilder object atomically

我的问题是: 我有 class: 我需要同时原子地向 StringBuilder 添加新字符。 但问题是,这个 object 中应该只有最后 128 个字符。 我不能使用 StringBuffer,因为操作应该是非阻塞的。 所以,有两个操作: 首先:检查 StringBuilder 是否已经有 1 ...

AtomicReference.compareAndSet(old,new) 是否保证 old.field 没有改变? - Does AtomicReference.compareAndSet(old,new) guarantees old.field wasn't change?

AtomicReference.compareAndSet(old,new)是否保证 old.field没有改变? 或者它只是保证old的没有重新分配给新的 object? 如果 2 为真,这是否意味着AtomicReference仅对像String这样的不可变对象有用? (因为在old的可变 ...

如果我们分配一个 function 给它返回一些数组,AtomicReference 的值是否会被延迟设置? - Does the value of AtomicReference will be set lazily if we assign a function to it which returns some array?

我有这段代码: 在哪里 当然,这是一个非常糟糕的例子,但我试图通过添加延迟来模仿我的真实测试用例。 我的问题是,由于 someFunc() 立即返回数组并且数组元素填充在不同的线程中,但是我们得到的结果存储在 AtomicReference 中,直到稍后我们才得到值,所以延迟我添加主 functi ...

AtomicReference 无法避免 java 多线程中的竞争条件 - AtomicReference not working to avoid race condition in java multi threading

我有一个“User.java”class,它的 Integer 变量计数最初设置为 0。在另一个 class“ThreadDemo.java”中,我在 AtomicReference 中设置了用户 object。 这个“userRef”object 由“1000”个线程共享,在每个线程中我将“计数” ...

使用AtomicReference的带参数的Singleton - Singleton with arguments using AtomicReference

我必须创建一个接受输入参数的Singleton。 基本上我需要根据某些配置在库中创建一个DBConnector。 现在,这个配置由消费应用程序传递给库。 根据传入的配置,我想创建一个DBConnector实例,然后在库中重用它。 我想过使用DI来处理这个问题,但是当初始化这个库时,我不知 ...

数据在AtomicReference的各个元素上进行竞争 - Data Races on individual elements of an AtomicReference

我有一个与通过原子参考访问单个元素有关的问题。 如果我有一个IntegerArray和一个原子引用;是否会通过AtomicReference变量读取和写入数组的各个元素导致数据竞争? 在下面的代码中:num是一个整数数组,其中aRnumbers是数组的原子引用。 在线程1和2中; 我 ...

将同步方法转换为非阻塞算法 - Convert synchronized methods to non-blocking algorithm

只是找到有关非阻塞算法的信息,因此想在实践中使用它们。 我将一些代码从同步更改为非阻塞,因此我想问一下我是否做对了所有事情并保存了以前的功能。 同步代码: 我在非阻塞算法中的替代方案: 我是否正确完成了所有工作,或者错过了某些工作? 对于代码和使用非阻塞方法设置对象一般 ...

在复杂对象的情况下AtomicReference如何使用CAS - How AtomicReference use CAS in case of Complex Object

AtomicReference实例使用Unsafe CAS操作来利用处理器指令进行锁定。 但是我有点困惑在复杂对象的情况下它是如何工作的。 例如,假设我们有一个Person类的实例(id,firstName,lastName)。 我正在将对象实例共享给多个线程t1,t2和t3。 由于 ...

Java AtomicReferenceFieldUpdater-使用泛型类型时的ClassCastException - Java AtomicReferenceFieldUpdater - ClassCastException when using generic types

我收到以下错误: 对泛型类型使用AtomicReferenceFieldUpdater时。 我很困惑,我也不知道为什么会出现这样的错误。 我正在使用的代码: 例外发生在这行代码中: 但是,如果我将其更改为以下内容: 那么就不会有错误:| (但为什么? ...

多线程应用程序连续失败后,如何将主机名添加到阻止列表? - How to add hostname to block list after consecutive failures in multithreading application?

我在代码中使用Callable,它将被多个线程调用,如下所示。 到目前为止,无论何时抛出任何RestClientException我都将hostname添加到blockList中。 下面是我在DataMapping类中的内容: 问题陈述:- 现在,您可以在call方法中看 ...

Hazelcast-AtomicReference.alterAndGet引发HazelcastSerializationException - Hazelcast - AtomicReference.alterAndGet is throwning HazelcastSerializationException

我在同一台计算机上运行三个Hazelcast节点,每个节点都尝试更改AtomicReference。 第一个和第二个节点运行正常,第三个节点抛出HazelcastSerializationException。 Hazelcast版本:Hazelcast 3.4.2(20150326-f6 ...

多个字段:volatile还是AtomicReference? - multiple fields: volatile or AtomicReference?

我必须将线程之间的访问同步到共享对象,该对象的状态由几个字段组成。 说: 我可能有很多线程正在读取此对象, 并且只有一个线程将在特定点写入: 现在我的问题是如何确保读取线程不会在不一致状态下找到共享库。 我读过很多答案,它们说,为了确保线程之间的一致性, vola ...

Java中无锁且大小受限制的队列 - Lock-free and size-restricted queue in Java

我想根据Java的扩展一个无锁队列的实现这个帖子。 对于我的实现,我只能使用原子变量/引用。 另外,我的队列应具有最大大小。 因此,当队列已满时,putObject()应该阻塞,如果队列为空,则应该阻塞getObject()。 目前,我不知道如何在不使用锁的情况下解决该问题。 ...

正确理解volatile,同步和AtomicReference等概念? - Correct understanding of concepts like volatile, syncronized and AtomicReference?

我想确定我理解这些概念。 解释/确认将对我有所帮助,我相信很多其他程序员。 以下是我对这些概念的理解,这是我的调查结果: 当您想在多个线程之间共享变量时,使用Volatile。 a)bwteen声明一个(在线程之间共享)变量volatile和不变量有什么区别? b)在我们从不同 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM