为什么80%的码农都做不了架构师?>>>   

1.volatile本质是在告诉JVM当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取。synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。

2.volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别。

3.volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性

4.volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。

5.volatile标记的变量不会被编译器优化;synchronized标记的变量可以被编译器优化。

转载于:https://my.oschina.net/134596/blog/1636884

volatile 和 synchronized的区别相关推荐

  1. 多图 | 搞懂volatile和synchronized的区别

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「日拱一兵」 之前写了几篇 Java并发 ...

  2. volatile和synchronized的区别与联系

    这个可能是最好的对比volatile和synchronized作用的文章了.volatile是一个变量修饰符,而synchronized是一个方法或块的修饰符.所以我们使用这两种关键字来指定三种简单的 ...

  3. 并发编程-volatile和synchronized的区别

    1. 使用上的区别 Volatile只能修饰变量,synchronized只能修饰方法和语句块 2. 对原子性的保证 synchronized可以保证原子性,Volatile不能保证原子性 3. 对可 ...

  4. volatile和synchronized的区别

    1.volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取:synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住. 2.vo ...

  5. volatile与synchronized的区别

    volatile主要用在多个线程感知实例变量被更改了场合,从而使得各个线程获得最新的值.它强制线程每次从主内存中讲到变量,而不是从线程的私有内存中读取变量,从而保证了数据的可见性. 关于synchro ...

  6. volatile、synchronized、(原子、可见、有序)、先行发生原则

    Java代码---编译--->Java字节码---类加载器加载到JVM中--->汇编指令(在CPU上执行) Java中的并发机制依赖于JVM的实现和CPU指令 1.volatile 轻量级 ...

  7. Java 并发编程CAS、volatile、synchronized原理详解

    CAS(CompareAndSwap) 什么是CAS? 在Java中调用的是Unsafe的如下方法来CAS修改对象int属性的值(借助C来调用CPU底层指令实现的): /*** * @param o ...

  8. zbb20180913 java thread volatile与synchronized区别

    volatile与synchronized区别 仅靠volatile不能保证线程的安全性.(原子性) ①volatile轻量级,只能修饰变量.synchronized重量级,还可修饰方法 ②volat ...

  9. volatile和synchronized有什么区别

    volatile和synchronized有什么区别 1.工作原理  · volatile本质上是在告诉JVM当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取.  · synchroni ...

最新文章

  1. 企业网络推广浅析外包企业网络推广如何有效布局关键词优化?
  2. SQL基础(五)-- 递归
  3. 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解
  4. 怎么通过id渲染页面_「快页面」动态配置化页面渲染器原理介绍
  5. 【flask整合深度学习】ubuntu系统下显示深度学习视觉检测结果图片并可在web端访问,配置允许手机浏览器打开
  6. Spring中基于Java的配置@Configuration和@Bean用法
  7. java与ios_JAVA和IOS区别是什么?
  8. MYSQL出错代码列表大全(中文)
  9. LeetCode:409、最长回文串
  10. java中操作时间的常用工具类
  11. 判断回文串时忽略既非字母又非数字的字符
  12. poj 3181 Dollar Dayz (整数划分问题---递归+DP)
  13. java-jsoup爬虫
  14. WIFI抓包实战篇——使用Kali 同时抓取多个智能家居数据包
  15. 计算机科学与技术概论,计算机科学与技术概论论文
  16. python三引号作用是什么_python中三引号的作用(逗号的两点总结)
  17. MySQL必知必会,我的MySql复习宝典
  18. 倾斜摄影相机焦距与实景三维模型效果的关系
  19. 【C语言】小写数字金额转换成中文大写金额
  20. 注意了!浏览色情网站被短信通知检讨?可能是诈骗!

热门文章

  1. react中弹框的显示隐藏
  2. 如何解决大量样本标注问题
  3. 用typescript开发koa2的二三事
  4. 获取验证码canvas
  5. OSChina 周一乱弹 ——程序员用代码写的爱情
  6. Invokedynamic:Java的秘密武器
  7. Bootstrap3 栅格系统-栅格参数
  8. (转)Linux下apache限速和限制同一IP连接数的实现
  9. IIS日志分析方法及工具
  10. linux系统安全详解