cost 376 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 ...

Java AtomicReference#getAndSet 的用例是什么?

[英]What is a usecase for Java AtomicReference#getAndSet?

Java AtomicReference#getAndSet用例是什么? 換句話說,如果我在代碼中使用的來自AtomicReference的唯一方法是AtomicReference#getAndSet ,那么我根本不需要AtomicReference ,只需要一個volatile變量就足夠了,這是 ...

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 ...

使用同步時,不需要原子引用

[英]Atomic references are unnecessary when using synchronized

該代碼來自Fred Long所著的Java Concurrency Guidelines 。 我了解一組原子操作不是原子操作。 因此,以下代碼不符合要求。 要查找代碼,請查看第23頁。 正確的解決方案如下所示: 但是我認為正確解決方案中的原子引用是多余的,因為synchro ...

多個字段: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