先了解java5 线程并发库
查看api中 java.util.concurrent.atomic 包,
一 AtomicInteger 类,在程序中可能对整数执行加,有可能你加完了,还没取得新值,别人又加,
别人一增加,取出来的数可能就不是我希望得到的, 使用AtomicInteger 类可以解决多线程访问整数的问题.
使用 AtomicInteger类流程如下:
1. 首先 用构造方法 new AtomicInteger(int initialValue) 初始化一个值,
AtomicInteger ai = new AtomicInteger(0);
2. 要增加 3, 这样写
ai.addAndGet(3);
在执行此方法时,中途如果别人要加,肯定加不进,必须我加完了,返回值以后别人才能操作, 确保别人不会打断我。
注意:要减,实现时就加 负数
总结,多个线程访问同一个整数的情况,就需要用 AtomicInteger 类。
二 AtomicIntegerArray 类, 整数数组
它同样有一个增加方法,addAndGet(int i, int delta), 这里i 表示数组下标;
三 AtomicIntegerFieldUpdater 类,操作类里的整型变量