Linux 拨号vps windows公众号手机端

在java中synchronized和volatile的区别是什么

lewis 6年前 (2019-03-23) 阅读数 13 #程序编程

java中synchronized和volatile的区别:

1.volatile仅能使用在变量级别,而synchronized则可以使用在变量、方法、和类级别的。

2.synchronized会线程阻塞,volatile不会造成线程阻塞。

3.synchronized保证了线程间的可见性、有序性和原子性,而volatile则无法保证原子性。

4.synchronized标记的变量可以被编译器优化,而volatile标记的变量不会被编译器优化。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门