当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。