计数器AtomicInteger 和 同步计数器并发效率问题

LZ木有上传自己的测试代码 所以只能随便说说啦同步要求只能有一个线程进行处理 处理完后下个线程进行处理而AtomicInteger这类实现都是基于CAS做的 如果并发很高 冲突很高 每个线程的cas的失败频率会变高 自然比独占慢了被~
■网友
首先明白什么是busy-wait的同步原语,什么是thread-wait的同步原语。AtomicInteger使用的是自旋锁(spin-lock),自旋锁适用于非常短的持有锁的场景下,比如几十个毫秒。如果持有时间过长,那么锁就一直做自旋(相当于while(1)一直消耗CPU),在高并发的场景下可想而知,一大波自旋锁正在busy-waiting。使用睡眠锁的话(比如互斥量、Lock、Synchronized),虽然增加了线程由RUNNING到BLOCKED的上下文切换次数,但睡眠的线程并不占用CPU资源,所以这种情境下反而比AtomicInteger更高效。


    推荐阅读