聊这个之前 , 先简单介绍下几个概念:
- 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断 , 要么就都不执行
- 可见性:指当多个线程访问同一个变量时 , 一个线程修改了这个变量的值 , 其他线程能够立即看到修改的值
- 有序性:即程序执行的顺序按照代码的先后顺序执行
- volatile是线程同步的轻量级实现 , 性能比synchronized的要好
- volatile只能修饰变量 , synchronized可以修饰方法、代码块
- volatile被多线程访问不会被阻塞 , synchronized会
- volatile保证数据可见性、有序性 , synchronized保证原子性 , 可见性
- volatile保证多线程之间数据可见性 , synchronized保证多线程间资源同步问题 , 两个一般配合使用
【百度|synchronized 和 volatile 的区别是什么?】
- 微信|微信打电话和直接打电话有什么区别吗?专家告诉你,区别很大
- 百度|百度造车460天,集度上新
- 华夏小康|你想要的保护和安全感,从来不会再华奥汽车缺席
- |手机号绑定太多APP?一键查询和解绑方法有了
- |618节入手这3款手机最划算,高性价比和零差评,最后一款仅1699元
- 红米手机|618的第1天,我想卢总和雷总很难睡得着了
- 任天堂|被苹果“破防”、不和微软内卷!任天堂没空“上新”
- excel|将 Excel 中的数字和文本分成两列,必须弄懂 lookup 函数的查找原理
- 百度贴吧|百度贴吧为何渐渐失去了人气?
- 芯片|程序员年龄增大后的职业出路是什么?德国和我国的差距是什么?