永发信息网

Java是怎么保证原子性,可见性

答案:1  悬赏:30  手机版
解决时间 2021-03-24 17:45
Java是怎么保证原子性,可见性
最佳答案
首先,要知道原子性和可见性是在并发环境需要思考的问题,所以下面的回答是围绕了并发场景来描述的。
如果大家不明白并发场景,请先了解java并发
原子性,可以理解为CPU层面不能分割的操作,那么 i++是原子操作吗?不是的,实际它是i=i+1,这个操作首先要读取i的值,然后为i值加1。是需要拆分的。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。有好几种方式实现一个原子操作。java提供了 sychronized代码块,lock接口(它的实现重入锁是比较常用的)。还可以使用原子数据结构。AtomicInteger、AtomicLong、AtomicReference等。
可见性。可以理解为线程层面各个线程之间对某个操作是透明的,各个线程可以及时知道引用的改变。volatile修饰的变量可以保证可见性,假如,一个变量只有 1或者0两种情况。那么volatile修饰之后,就不需要对这个变量加同步操作了。强调一下。volatile不能保证原子性。volatile修饰的整数i,在多线程下 i++之后,不能得到预期的值

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
描写重庆的唯美句子,关于重庆的句子
中国农业银行钦州金桥支行地址在哪,我要去那
网易推广GH怎么加入
229x1÷11÷46 1÷44怎么做?
在基因工程中,若受体细胞是细菌,则用来处理
初级导游证有什么作用?
非凡人注册过商标吗?还有哪些分类可以注册?
白界与勇气有关的诗句,有关河流的诗句
我怎么和儿子谈早恋问题
请问电梯防火控制系统装置调试,消防电话系统
塔尔乌嘎德克我想知道这个在什么地方
模拟人生中世纪 为村庄收集3个灵感这个任务怎
---Doyoulike maths?---______.A.Yes,Idon’t
370x27 十310x111简便计算l
4人英语小品剧本只要是英语剧本,4人的就行!快
推荐资讯
海涛法师讲超度鱼类海类众生咒语
这幅手抄报可以得多少分?100分满分,严格一
柳树湾村在哪里啊,我有事要去这个地方
有没有nz网zan
听说苹果要免关税能便宜多少
有没有不充值的小说
最早演的泰国电视剧有哪些
求广东实验中学校歌和《省实颂》的歌词,最好
汇景龙湾幼儿园在哪里啊,我有事要去这个地方
女生第一眼会看男生的什么部位
如何将发电机和市电并网,
怎么不同比特币交易网站的价格不同
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?