首页 > 其他 > 详细

并发编程-volatile和synchronized的区别

时间:2019-08-28 23:31:10      阅读:90      评论:0      收藏:0      [点我收藏+]

1. 使用上的区别

Volatile只能修饰变量,synchronized只能修饰方法和语句块

 2. 对原子性的保证

synchronized可以保证原子性,Volatile不能保证原子性

 3. 对可见性的保证

都可以保证可见性,但实现原理不同

Volatile对变量加了lock,synchronized使用monitorEnter和monitorexit  monitor  JVM

 4. 对有序性的保证

Volatile能保证有序,synchronized可以保证有序性,但是代价(重量级)并发退化到串行

 5. 其他

synchronized会引起线程阻塞

volatitle不会引起线程阻塞

并发编程-volatile和synchronized的区别

原文:https://www.cnblogs.com/yintingting/p/11427002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!