- volatile是线层同步的轻量级的实现,并且volatile只能修饰变量。而synchronized可以修饰方法和代码块
- 多线程访问volatile不会发生阻塞,而synchronized会出现阻塞。
- volatile解决的是变量在多个线程之间的可见性,但不能保证原子性;而synchronized保证原子性,也可间接保证可见性,因为它会将私有内存和公共内存中的数据做同步。
【Java】synchronized和volatile的比较
本文探讨了volatile和synchronized在多线程环境中的作用。volatile确保变量的可见性,不保证原子性,多线程访问时不会阻塞。synchronized则能保证原子性和可见性,但可能引起线程阻塞。深入理解两者特性有助于正确选择并发控制策略。

被折叠的 条评论
为什么被折叠?



