翻譯即是原子性int.
原因在於int的++和--並不是原子性的.在實際操作中很可能需要使用外部鎖來控制.
如下代碼,直接進行++.結果並不是我們所希望的200000
public class AtomicTest implements Runnable {
private static int count = 0;
public void run() {
for (int i = 0; i < 100000; i++) {
count++;
}
}
public static void main(String[] args) throws InterruptedException {
new Thread(new AtomicTest()).start();
new Thread(new AtomicTest()).start();
Thread.sleep(5000);
System.out.println(count);//130925
}
}
在使用AtomicInteger之後.這樣寫即可.
public class AtomicTest implements Runnable {
private static AtomicInteger count = new AtomicInteger(0);
public void run() {
for (int i = 0; i < 100000; i++) {
count.getAndIncrement();//該方法即是++
}
}
public static void main(String[] args) throws InterruptedException {
new Thread(new AtomicTest()).start();
new Thread(new AtomicTest()).start();
Thread.sleep(5000);
System.out.println(count);//200000
}
}
《java思想》一書對此包有個說明:大概意思是莫要太過依賴,還是自己去控制爲好。