/**
* AtomicInteger
* @author admin
*
*/
public class AtomicVolatile {
private static AtomicInteger count=new AtomicInteger(0);//原子变量
/**
* 加1
*/
private static void add(){
count.incrementAndGet();
}
/**
* 主程序
* @param args
*/
public static void main(String[] args) {
ExecutorService threadPool=Executors.newFixedThreadPool(100);//线程池Integer.MAX_VALUE
//#s
for (int i = 0; i < 10000; i++) {
threadPool.execute(new Runnable() {
@Override
public void run() {
AtomicVolatile.add();//不断加1
}
});
}
//#e
threadPool.shutdown();
try {
threadPool.awaitTermination(500, TimeUnit.SECONDS);//给予一个关闭时间(timeout)等待线程停止,但是实际关闭时间应该会这个小
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("输出:"+AtomicVolatile.count);//输出结果与预期一致
}
}
java 多线程 AtomicInteger原子变量
最新推荐文章于 2022-09-17 18:24:41 发布