AtomicInteger是线程安全的,不会因为高并发而出现错误,而++和--这两种就可能出错,若果非要用++和--等操作的话必须使用synchronized上锁。 更加详细的介绍请参见:http://blog.csdn.net/zz198808/article/details/8029405 感谢博主的博文。 测试AutomicInteger的代码 package com.Tests; /** * Created by Administrator on 2015/4/26. */ import java.util.concurrent.atomic.AtomicInteger; /** * 来自AtomicInteger提供的接口 * * //获取当前的值 * publiv final int get(); * //获取当前的值,并且设置新的值 * public final int getAndSet(int newValue);//用final修饰的方法不可重写 * //获取当前额值,并自增 * public final int getAndIncrement(); * //获取当前的值,并自减 * public final int getAndDecrement * //获取当前的值,并加上预期的值 * public final int getAndAdd(int delta); * * */ public class TestAutomicInteger { private static void v(int i){ System.out.println("i : "+i); } public static void main(String[] args) { AtomicInteger ai = new AtomicInteger(0);//0是给的初始值 int i1 = ai.get();//ai=0 v(i1); int i2 = ai.getAndSet(5);//ai=5 i2=0 v(i2); int i3 = ai.getAndIncrement();//ai=6 i3 = 5 v(i3); int i4 = ai.getAndAdd(3);//ai =9 i4=6 v(i4); int i5 = ai.getAndDecrement();//ai = 8 i5=9 v(i5); } }
关于原子操作AtomicInteger、AtomicBoolean等
最新推荐文章于 2022-01-26 11:33:47 发布