我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

AtomicInteger 的CAS 问题

public final int incrementAndGet() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))
return next;
}
}
这是自增操作,定义: CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做
预期值是next吗? 内存值是current?
假如1个线程自增时没有其他线程竞争,那么预期值应该比内存值大1啊,怎么会预期值和内存值相同?

近期文章

  • javaSe有一个小问题不明白
  • C#SQL语句语法问题,求助求助~
  • RDLC分组报表如何实现功能。
  • 正则表达式求助~ ~
  • servlet里怎么设置回滚
  • db2的merge into语句怎么改写成mysql的?
  • java 一般项目的文件 图片啊什么的都保存在哪里 如何获取 路径怎么写
  • 一个500的错,求帮忙看一下
  • centos6.5mysql开启了远程访问,但是还是访问失败
  • 关于跨站点脚本攻击漏洞的问题
  • Galactic
  • linux samba服务器配置
  • struts2 配置文件问题,匹配不到Action文件
  • JAVA代码中黄色警告清理问题
  • Trees on the level
  • ionic 使用require分离 出现controller不能与service相连接
  • 关于历史同期echarts图的问题?
  • 老师这两个c的值为什么不一样啊
  • C++初学者结构体问题 紧急求解答 有一张图片
  • 再次提问,查询一段文字里面含有数据库关键字字段中的哪些关键字????

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华