本文共 1428 字,大约阅读时间需要 4 分钟。
??????Integer?AtomicInteger??????
??????????????????????????????????????????????????????????????????????????????
AtomicInteger??????????
AtomicInteger???????????????????????? synchronize?????????????????????????????????????Java??Unsafe??
AtomicInteger?????
AtomicInteger?????????Unsafe????????????????
private static final Unsafe U = Unsafe.getUnsafe();public final int getAndIncrement() { return U.getAndAddInt(this, VALUE, 1);} ?????????
getAndAddInt???AtomicInteger??????????????????
public final int getAndAddInt(Object o, long offset, int delta) { int v; do { v = getIntVolatile(o, offset); } while (!weakCompareAndSetInt(o, offset, v, v + delta)); return v;} ?????
do-while???
?????????????????????????????????????????????????????????????????????????volatile????
getIntVolatile???????????????????????????????????????????weakCompareAndSetInt?
??????????????????????????????????????????? contention?????????
???????AtomicInteger????????????????????????????????????????synchronized?????
?????????????????
??????????????????????????????Java??????????????
???Spin?
?????????????????????????????????????????????????????????????????????
?AtomicInteger?????????do-while???????????????????????????
???Blocking?
???????????????????????????????????????????????????????
?????????
?????????????????????????????????????????????????????
??
AtomicInteger??Unsafe???????????????????????????????????????????????????
发表评论
最新留言
关于作者