package com.itheima._Atomic;
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicIntegerTest {//AtomicInteger本类里面 获取是地址值
public static void main(String[] args) {
//创建原子类对象
AtomicInteger atom = new AtomicInteger();
System.out.println(atom); //0
AtomicInteger atom2 = new AtomicInteger(10);
System.out.println(atom2);//10
System.out.println("=======================");
//1. getAndIncrement() 先获取再 +1 类似于 i++
int current = atom.getAndIncrement();
System.out.println(current);//0
System.out.println(atom);//1 //atom直接打印值,里面重写了toString
System.out.println("=======================");
//2. incrementAndGet() 先增1 后获取 类似于 ++i
int num = atom2.incrementAndGet();
System.out.println(num);//11
System.out.println(atom2);//11
}
}
0
10
=======================
0
1
=======================
11
11
原子类
AtomicInteger
原子类该类的操作 是一个整体,能够保证在多线程情况下仍是一个完整操作,就没有数据安全问题。
1. 常用方法
1. 构造方法
public void AtomicInteger();
public void AtomicInteger(int i);
AtomicInteger atom = new AtomicInteger(); AtomicInteger atom2 = new AtomicInteger(10);2. getAndIncrement()
先获取 再+1 类似于 i++
3. IncrementAndGet()
先加1 再获取值 类似于 ++