當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java AtomicInteger weakCompareAndSet()用法及代碼示例


java.util.concurrent.atomic.AtomicInteger.weakCompareAndSet()是Java中的一種內置方法,如果當前值等於參數給定的期望值,則將值設置為參數中的傳遞值。該函數返回一個布爾值,該布爾值使我們了解更新是否完成。

用法:

public final boolean weakCompareAndSet(int expect,
                                       int val)

參數:該函數接受兩個強製性參數,如下所述:


  • expect:指定原子對象應為的值。
  • val:如果原子整數等於期望值,則指定要更新的值。

返回值:該函數返回一個布爾值,成功則返回true,否則返回false。

以下程序演示了該函數:

示例1:

// Java program that demonstrates 
// the weakCompareAndSet() function 
  
import java.util.concurrent.atomic.AtomicInteger; 
  
public class GFG { 
    public static void main(String args[]) 
    { 
  
        // Initially value as 0 
        AtomicInteger val 
            = new AtomicInteger(0); 
  
        // Prints the updated value 
        System.out.println("Previous value: "
                           + val); 
  
        // Checks if previous value was 0 
        // and then updates it 
        boolean res 
            = val.weakCompareAndSet(0, 6); 
  
        // Checks if the value was updated. 
        if (res) 
            System.out.println("The value was "
                               + "updated and it is "
                               + val); 
        else
            System.out.println("The value was "
                               + "not updated"); 
    } 
}
輸出:
Previous value: 0
The value was updated and it is 6

示例2:

// Java program that demonstrates 
// the weakCompareAndSet() function 
  
import java.util.concurrent.atomic.AtomicInteger; 
  
public class GFG { 
    public static void main(String args[]) 
    { 
  
        // Initially value as 0 
        AtomicInteger val 
            = new AtomicInteger(0); 
  
        // Prints the updated value 
        System.out.println("Previous value: "
                           + val); 
  
        // Checks if previous value was 0 
        // and then updates it 
        boolean res 
            = val.weakCompareAndSet(10, 6); 
  
        // Checks if the value was updated. 
        if (res) 
            System.out.println("The value was "
                               + "updated and it is "
                               + val); 
        else
            System.out.println("The value was "
                               + "not updated"); 
    } 
}
輸出:
Previous value: 0
The value was not updated

參考: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html#weakCompareAndSet–



相關用法


注:本文由純淨天空篩選整理自gopaldave大神的英文原創作品 AtomicInteger weakCompareAndSet() method in Java with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。