对AtomicInteger的一点疑惑,请大师帮忙解答一下

nemesis_ 2014-01-09 03:16:48
AtomicInteger的“boolean compareAndSet(int expect, int update)”方法,API上解释的比较清楚了,是说“如果当前值 == 预期值,则以原子方式将该设置为给定的更新值”,并且,它内部是调用的一个native方法。
我的疑惑如下:
1、为而要用native实现这个功能,直接“if(value==expect) value=update;”不可以吗?
2、是否是考虑到“if(value==expect) value=update;”这个写法不是多线程安全的?我试过,貌似是多线程安全的;
3、请问有没有什么示例代码能证明用“if(value==expect) value=update;”不可取代native方式,或是说用什么代码能体现出JDK里compareAndSet和自己写的“if(value==expect) value=update;”的区别?
...全文
309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nemesis_ 2014-01-10
  • 打赏
  • 举报
回复
已知道原因了,自己粗心了,谢谢大家。
huntor 2014-01-09
  • 打赏
  • 举报
回复
AtomicXXX 使用 CPU的 CAS Compare and Swap 指令实现的。
nemesis_ 2014-01-09
  • 打赏
  • 举报
回复
引用 1 楼 raistlic 的回复:
[quote=引用 楼主 nemesis_ 的回复:] 是否是考虑到“if(value==expect) value=update;”这个写法不是多线程安全的?我试过,貌似是多线程安全的;
不错,这个写法不是多线程安全的。 你试不出它不安全,不表示它是安全的。 1 - 线程 a 执行这段代码,先测试 value == expect,得结果 true 2 - 此时线程 b 更改了 value 的值 3 - 线程 a 执行 value = update,但其实此时 value == expect 已经不成立了[/quote] 谢谢您的回复,我也感觉是这样,但始终没想到有什么办法可以证明这个说法,感觉比较郁闷。
raistlic 2014-01-09
  • 打赏
  • 举报
回复
引用 楼主 nemesis_ 的回复:
是否是考虑到“if(value==expect) value=update;”这个写法不是多线程安全的?我试过,貌似是多线程安全的;
不错,这个写法不是多线程安全的。 你试不出它不安全,不表示它是安全的。 1 - 线程 a 执行这段代码,先测试 value == expect,得结果 true 2 - 此时线程 b 更改了 value 的值 3 - 线程 a 执行 value = update,但其实此时 value == expect 已经不成立了
内容概要:本文围绕基于三电平ANPC(有源中点箝位)拓扑的虚拟同步发电机(VSG)构网型逆变器展开,提出一种融合双闭环控制、中点电位平衡控制与DPWMA调制的高性能并网控制策略。通过深入分析ANPC三电平逆变器的拓扑结构,阐明其在开关损耗均衡、中点电位稳定性和输出谐波抑制方面的显著优势,为高性能并网奠定硬件基础。针对电网不平衡与动态扰动挑战,系统性地引入正负序分离锁相技术,实现电网相位的高精度同步,有效隔离负序分量干扰;同时,采用电网电压前馈控制策略,构建前馈-反馈复合控制体系,显著提升系统动态响应速度与抗扰能力,克服传统闭环控制的滞后性。此外,通过DPWMA(双极性倍频脉宽调制)技术优化开关调制,进一步降低输出谐波,提升稳态电能质量,并结合中点电位平衡控制策略,确保直流侧电压稳定。通过多工况仿真模型对稳态、电网不平衡及动态切换等场景进行全面验证,结果表明该复合控制策略能有效保障并网电流的高质量、三相对称性与功率稳定性,显著增强了逆变器在复杂电网环境下的适应性与运行可靠性。; 适合人群:具备电力电子与电力系统基础知识,从事新能源并网、逆变器控制、微电网技术及VSG应用等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高电能质量、高可靠性的三电平并网逆变器先进控制方案;②解决电网电压不平衡、谐波畸变、动态扰动等复杂工况下的并网稳定性与电流质量难题;③优化VSG构网型逆变器的动态响应特性、中点电位控制精度与谐波抑制能力;④为新能源发电系统的大功率、高性能并网提供理论依据与仿真验证支持; 阅读建议:此资源以Simulink仿真为核心,紧密结合理论分析与控制策略设计,建议读者在学习过程中,重点理解DPWMA调制、正负序分离锁相、电网电压前馈与中点电位平衡控制之间的协同作用机制,结合所提供的仿真模型,通过设置不同工况(如稳态、不平衡跌落、电压骤变)进行仿真实验,深入掌握各控制环节对系统性能的影响,从而全面把握构网型逆变器在复杂电网条件下的运行特性和控制精髓。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧