AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别
来源:互联网 发布:判断矩阵的一致性检验 编辑:程序博客网 时间:2024/05/17 22:56
通过查看JDK的API知道:
int
incrementAndGet()
以原子方式将当前值加 1。
int
getAndIncrement()
以原子方式将当前值加 1。字面解释都一样。
再进行源代码查看:
public final int getAndIncrement() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return current; }}public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; }}
由此可以看出,两个方法处理的方式都是一样的,区别在于getAndIncrement
方法是返回旧值(即加1前的原始值),而incrementAndGet
返回的是新值(即加1后的值)
3 6
- AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别
- CAS指令 incrementAndGet方法
- Integer类中parseInt与valueOf两个方法的区别
- AtomicLong的incrementAndGet()
- jquery扩展的两个方法与区别
- servlet中两个init方法的区别
- volatile synchronized AtomicInteger的区别
- AtomicInteger的认识与使用
- JDK6中AtomicInteger的实现
- Java中AtomicInteger的使用!!!
- java中AtomicInteger的使用方法
- SERVLET中的doGet与doPost两个方法之间的区别
- System.arraycopy() 与 Arrays.copyOf()两个方法的区别
- SERVLET中的doGet与doPost两个方法之间的区别
- _winreg中SetValueEx和SetValue两个方法的区别
- js中preventDefault和stopPropagation两个方法的区别
- js中preventDefault和stopPropagation两个方法的区别
- SessionFactory接口中两个方法的区别(面试常考)
- 信号和槽的连接类型 Qt::ConnectionType 解析
- C++设计模式——单例模式
- 推荐!手把手教你使用Git
- Power Designer 使用记录
- Spring之IOC学习
- AtomicInteger 中 incrementAndGet与getAndIncrement 两个方法的区别
- 上机题目(初级)- Java网络操作-Socket实现客户端和服务器端通信二(Java)
- autoLayout cell中添加UILabel 多行显示问题
- python cookie
- Java5实现阻塞队列
- 简单工厂模式
- LMS学习管理系统综述
- Android编码规范
- 计算共有多少个单词,并输出最长和最短的单词