Rumah > Java > JavaSoalan temu bual > teks badan

java工程师面试——volatile关键字

王林
Lepaskan: 2020-11-03 15:47:33
ke hadapan
1844 orang telah melayarinya

java工程师面试——volatile关键字

一、volatile到底做了什么

(volatile保证有序性,可见性,不能保证原子性)

(视频教程推荐:java视频教程

1、禁止了指令重排

2、保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量值,这个新值对其他线程是立即可见的

3、不保证原子性(线程不安全)

二、synchronized关键字和volatile关键字比较

volatile关键字是线程同步的轻量级实现,所以volatile性能肯定比synchronized关键字要好。但是volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。

(更多相关面试题推荐:java面试题及答案

synchronized关键字在JavaSE1.6之后进行了主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及其它各种优化之后执行效率有了显著提升,实际开发中使用 synchronized 关键字的场景还是更多一些。

多线程访问volatile关键字不会发生阻塞,而synchronized关键字可能会发生阻塞

volatile关键字能保证数据的可见性,但不能保证数据的原子性。synchronized关键字两者都能保证(synchronized保证三大性,原子性,有序性,可见性)。

volatile关键字主要用于解决变量在多个线程之间的可见性,而 synchronized关键字解决的是多个线程之间访问资源的同步性。

相关推荐:java入门

Atas ialah kandungan terperinci java工程师面试——volatile关键字. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!