/** * 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原子变量
猜你喜欢
转载自franciswmf.iteye.com/blog/2287381
周排行