原子性的问题

来源:13-8 原子性2

涛滔浪

2020-05-25

老师对于原子性我有些疑问:
1.比如a=1;在写入这段时间内,是不是不允许其他线程读取a的值?
如果不允许,那在JMM模型下是怎么保证的?
如果允许的话,原子性存在的意义是什么(在我的理解中你取钱的时候,其他人是不能读取钱的值的,不然后面的人取钱就会余额不足)?

2.synchronized的代码块是随时保持可见性吗?
比如下面的代码,a++刚执行完,其他程序就可以保证立马看到吗?还是说要等大括号执行完才保证a的值可见?
int a;
int b;
synchronized (this){
a++;
b++;
}

写回答

1回答

悟空

2020-05-25

1 读取不到新值,可以读旧值

2 大括号完毕后

0
3
涛滔浪
回复
悟空
好吧明白了。
2020-05-26
共3条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程