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后的值。