Java并发包原子变量
- java.util.concurrent.AtomicInteger
- ...............................AtomicBollean
- ..............................AtomicLong
所有原子变量实现原理是利用CAS算法和Unsafe类(应用程序不需要也不应该考虑它)来实现在死循环里实现非阻塞是不断尝试直到成功为止。之所以成为原子变量是因为他们包含一些原子性复合操作。
synchronized与原子变量实现:synchronized是一种悲观的阻塞式操作,原子变量(CAS)算法实现的是乐观的非阻塞操作。
CAS算法可能出现ABA问题。此时可以使用StampedAtomicReference来避免ABA问题
本文介绍了Java并发包中AtomicInteger、AtomicBoolean及AtomicLong等原子变量的基本概念及其内部实现原理。通过对比synchronized关键字,阐述了原子变量采用的CAS算法实现非阻塞式操作的优势,并讨论了CAS算法可能面临的ABA问题及解决方案。
406

被折叠的 条评论
为什么被折叠?



