JDK源码随笔之AtomicInteger
发布日期:2021-04-30 21:02:20 浏览次数:104 分类:精选文章

本文共 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???????????????????????????????????????????????????

    上一篇:冒泡排序
    下一篇:Leetcode--347. 前k个高频元素

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2026年06月04日 08时07分09秒