讲讲 AtomicInteger 的使用?

发布于 2019-11-22 10:43:59
关注者
0
被浏览
832
1 个回答
  • 面试哥
    面试哥 2019-12-04
    为面试而生,有面试问题,就找面试哥。
    public final int get() //获取当前的值
    public final int getAndSet(int newValue)//获取当前的值,并设置新的值
    public final int getAndIncrement()//获取当前的值,并自增
    public final int getAndDecrement() //获取当前的值,并自减
    public final int getAndAdd(int delta) //获取当前的值,并加上预期的值
    boolean compareAndSet(int expect, int update) //如果输入的数值等于预期值,则以原子方式将该值设置为输入值(update)
    public final void lazySet(int newValue)//最终设置为newValue,使用 lazySet 设置之后可能导致其他线程在之后的一小段时间内还是可以读到旧的值。


    
    import java.util.concurrent.atomic.AtomicInteger;
    
    public class AtomicIntegerTest {
    
    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	int temvalue = 0;
    	AtomicInteger i = new AtomicInteger(0);
    	temvalue = i.getAndSet(3);
    	System.out.println("temvalue:" + temvalue + ";  i:" + i);//temvalue:0;  i:3
    	temvalue = i.getAndIncrement();
    	System.out.println("temvalue:" + temvalue + ";  i:" + i);//temvalue:3;  i:4
    	temvalue = i.getAndAdd(5);
    	System.out.println("temvalue:" + temvalue + ";  i:" + i);//temvalue:4;  i:9
    }
    
    }
    
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看