2.3.5使用原子类进行i++操作
Posted 成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.3.5使用原子类进行i++操作相关的知识,希望对你有一定的参考价值。
除了在i++操作时使用synchronized关键字实现同步外,还可以使用AtomicInteger原子类进行实现
原子操作时不可分割的整体,没有其他线程能够中断或检查正在原子操作的变量,一个原子类型就是一个原子操作的可用类型,他可以在没有锁的情况下,做到线程安全
package com.cky.thread; import java.util.concurrent.atomic.AtomicInteger; /** * Created by edison on 2017/12/9. */ public class AddCountThread extends Thread{ private AtomicInteger count = new AtomicInteger(0); @Override public void run() { super.run(); for (int i = 0; i < 10000; i++) { System.out.println(count.incrementAndGet()); } } }
package com.cky.test; import com.cky.thread.AddCountThread; /** * Created by edison on 2017/12/9. */ public class Run { public static void main(String[] args) { AddCountThread addCountThread = new AddCountThread(); Thread t1 = new Thread(addCountThread); t1.start(); Thread t2 = new Thread(addCountThread); t2.start(); Thread t3 = new Thread(addCountThread); t3.start(); Thread t4 = new Thread(addCountThread); t4.start(); Thread t5 = new Thread(addCountThread); t5.start(); } }
49993 49994 49995 49996 49997 49998 49999 50000
程序运行结果累加到了50000
以上是关于2.3.5使用原子类进行i++操作的主要内容,如果未能解决你的问题,请参考以下文章