synchronized和volatile的区别
程序员文章站
2022-07-05 16:07:10
1.volatile本质:是java虚拟机(JVM)当前变量在工作内存中的值是不确定的,需要从主内存中读取;synchronized则是锁定当前的变量,只有当前线程可以访问到该变量,其他的线程将会被阻塞。 2.volatile只能实现变量的修改可见性,并不能保证原子性;而synchronized则可 ......
- 1.volatile本质:是java虚拟机(jvm)当前变量在工作内存中的值是不确定的,需要从主内存中读取;synchronized则是锁定当前的变量,只有当前线程可以访问到该变量,其他的线程将会被阻塞。
- 2.volatile只能实现变量的修改可见性,并不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性。
- 3.volatile只能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的。
- 4.volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。
推荐阅读
-
你真的了解MyBatis中${}和#{}的区别吗?
-
iOS----------componentsJoinedByString 和 componentsSeparatedByString 的方法的区别
-
struts2配置文件详解(struts2和springMVC的区别)
-
微信公众平台和微信开放平台的区别(2者区别对比分析)
-
ajax请求头怎么设置(ajax和http请求的区别)
-
php 中self,this的区别和操作方法实例分析
-
解析json字符串的方式(json格式和字典区别)
-
js数组切割方法(splice和slice的区别)
-
laravel 配置路由 api和web定义的路由的区别详解
-
网站定制开发和模板建站的具体区别是什么?