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

707
2021/3/18 18:33:40
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

java中synchronized和volatile的区别:

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

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

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

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Java中Localdatetime怎么转字符串