AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别
Posted gaoquanquan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/chenkaibsw/article/details/81031950
看源码:
getAndIncrement:
1 public final int getAndIncrement() 2 for (;;) 3 int current = get(); 4 int next = current + 1; 5 if (compareAndSet(current, next)) 6 return current; 7 8
incrementAndGet:
1 public final int incrementAndGet() 2 for (;;) 3 int current = get(); 4 int next = current + 1; 5 if (compareAndSet(current, next)) 6 return next; 7 8
通过代码可以看出:
getAndIncrement返回的是当前值;
incrementAndGet返回的是加1后的值。
以上是关于AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别的主要内容,如果未能解决你的问题,请参考以下文章
AtomicInteger类中getAndIncrement方法中的spin是啥意思?