AtomicInteger是一個(gè)提供原子操作的Integer的類。在java中i++或++i操作并不是線程安全的,在使用的時(shí)候,
不可避免的會(huì)使用到synchronized關(guān)鍵字。而AtomicInteger則通過一種線程安全的加減操作接口。
先看看AtomicInteger提供的接口:
public final int get(); //獲取當(dāng)前的值public final int getAndSet(int newValue); //取當(dāng)前的值,并設(shè)置新的值public final int getAndIncrement(); //獲取當(dāng)前的值,并自增public final int getAndDecrement();//獲取當(dāng)前的值,并自減public final int getAndAdd(int delta);//獲取當(dāng)前的值,并加上預(yù)期的值測(cè)試代碼如下:
package com.test.auto;import java.util.concurrent.atomic.AtomicInteger;/** * @ClassName: ThreadTest * @Description: * @date 2017-2-7 上午10:55:13 * */public class ThreadTest { public static void main(String[] args) { AtomicInteger ai = new AtomicInteger(0); int i1 = ai.get(); v(i1); int i2 = ai.getAndSet(5); v(i2); int i3 = ai.get(); v(i3); int i4 = ai.getAndIncrement(); v(i4); v(ai.get()); } public static void v(int i) { System.out.PRintln("i : " + i); }}打印:
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注