AtomicInteger实现
来源:互联网 发布:脑洞网络用语 编辑:程序博客网 时间:2024/06/06 02:17
无锁操作常见场景
atomic包内的类经常使用无锁操作
AtomicInteger是非常典型的一种
private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final long valueOffset; static { try { valueOffset = unsafe.objectFieldOffset (AtomicInteger.class.getDeclaredField("value")); } catch (Exception ex) { throw new Error(ex); } } private volatile int value;
无锁增加操作实现 JDK1.7
public final int getAndDecrement() { for (;;) { int current = get(); int next = current - 1; if (compareAndSet(current, next)) return current; } }
JDK1.8
public final int getAndAddInt(Object o, long offset, int delta) { int v; do { v = getIntVolatile(o, offset); } while (!compareAndSwapInt(o, offset, v, v + delta)); return v;}
阅读全文
0 0
- AtomicInteger实现
- AtomicInteger实现同步
- AtomicInteger实现机制
- AtomicInteger的实现
- JDK6中AtomicInteger的实现
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- AtomicInteger
- 使用CSS3绘制简单的Android机器人
- java并发编程简单分析
- Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
- 旧电脑加速
- Faster RCNN 推荐区域理解
- AtomicInteger实现
- LeetCode | 两数之和
- python3 map函数
- 第三章(列表)
- ConcurrentLinkedQueue & CopyOnWriteArrayList
- (二)spring cloud微服务分布式云架构
- CyclicBarrier实现原理
- ReentrantLock实现原理
- spring-data-cassanra的简单使用