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


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


Java.AtomicInteger.getAndAccumulate()方法是一種內置方法,該方法通過對當前值和作為參數傳遞的值應用指定的操作來更新對象的當前值。它以整數作為參數,並使用IntBinaryOperator接口的對象,並將該對象中指定的操作應用於這些值。它返回先前的值。

用法:

public final int getAndAccumulate(int y, 
                   IntBinaryOperator function)

參數:此方法接受兩個參數:


  • y:要在其上應用函數的整數。
  • function:函數應用於對象的當前值和值y。

返回值:該函數返回當前對象的先前值。

實例演示函數。

// Java program to demonstrate 
// working of getAndAccumulate() method 
  
import java.util.concurrent.atomic.AtomicInteger; 
import java.util.function.IntBinaryOperator; 
  
public class Demo { 
    public static void main(String[] args) 
    { 
        new UserThread("Thread A"); 
        new UserThread("Thread B"); 
    } 
} 
  
class Shared { 
    static AtomicInteger ai 
        = new AtomicInteger(1); 
} 
  
class UserThread implements Runnable { 
    String name; 
  
    UserThread(String name) 
    { 
        this.name = name; 
        new Thread(this).start(); 
    } 
  
    IntBinaryOperator ibo = (x, y) -> (x * y); 
  
    int value = 5; 
    @Override
    public void run() 
    { 
        for (int i = 0; i < 3; i++) { 
  
            int ans 
                = Shared.ai 
                      .getAndAccumulate(value, ibo); 
  
            System.out.println(name + " "
                               + ans); 
        } 
    } 
}
輸出:
Thread A 1
Thread A 5
Thread A 25
Thread B 125
Thread B 625
Thread B 3125

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



相關用法


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