关于atomic*原子操作,这里以AtomicInteger类为例
使用场景:
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,
不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
/**
* Atomic原子性测试。
*
* @author cary
* @version 1.0.0
*/
public class AtomicTest {
public static void main(String[] args) {
AtomicInteger ai = new AtomicInteger(0);
int i1 = ai.get();
print(i1);
int i2 = ai.getAndSet(5);
print(i2);
int i3 = ai.get();
print(i3);
int i4 = ai.getAndIncrement();
print(i4);
print(ai.get());
}
static void print(int i) {
System.out.println("i : " + i);
}
}
结论: atomic比volatile靠谱
热门工具 换一换