采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,原子性和可见性得到保证之后那么就一定能保证线程安全吗?
假设 volatile int a = 2,这时候有两个线程同时用原子操作对a这个值减去1,最终一定会得到0吗?,会不会出现一种情况他们同时将2-1 后的结果赋值给a导致最终a = 1,如果这时候有互斥性做保证(顺序执行),那么肯定一定能得到0,但是仅有原子性和可见性我不敢肯定一定会得到0,我想的是原子性只能保证将多个操作合为一个操作,但是它不能保证让线程顺序执行呀,还是存在同时执行的情况哇,恳请老师指点一下,感谢老师!
特别好的问题。
我理解的原子性,是包含互斥属性的,即便是多线程,只要具备原子性,那么就不存在同时执行的情况。也就是说,具备原子性就可以保证不同时执行了,例如并发二期课程讲的AtomicInteger原子类,例如CAS。
参考:https://www.zhihu.com/question/353542624/answer/905449728
登录后可查看更多问答,登录/注册
完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题
1.9k 26
917 12
1.1k 12
2.5k 12
1.1k 11