请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于原子类如何保证线程安全

老师, 我还是不太理解AtomicInteger是怎么保证线程安全的,
就像例子中的两个线程对AtomicInteger进行自增, 一开始变量等于0, a线程执行cas(0, 1), 那b线程也是cas(0, 1)啊, 最后不还是少加了么.

正在回答

1回答

cas如果失败就会重试,它本身是不限定起始和截止的数字的,他只是加一,如果他这次从0到1失败了,那么下一次他去取的时候,假设起始是一,那他就会加到二,他会保证最终完成这一次加一的过程。

0 回复 有任何疑惑可以回复我~
  • 提问者 woy #1
    1.我有点绕晕了, 我可以这么认为么, 就是具有原子性的操作一定是线程安全的. 
    2.我还想问下在cas的过程中, 其他线程还可以对变量写操作么?
    回复 有任何疑惑可以回复我~ 2020-02-15 20:53:39
  • 悟空 回复 提问者 woy #2
    CAS原子指令的过程中,其他线程是无法打断的
    回复 有任何疑惑可以回复我~ 2020-02-15 21:39:19
  • 提问者 woy #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-02-16 08:58:24
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信