volatile 面试,
如何解决写爬虫IP受阻的问题?立即使用。
1.挥发性做了什么?
(volatile保证顺序和可见性,但不能保证原子性)
(视频教程推荐:java视频教程)
1.禁止指令重排。
2.当不同的线程对这个变量进行操作时,这个变量的可见性得到了保证,也就是说,一个线程修改了一个变量值,新的值立即对其他线程可见。
3.不保证原子性(线程不安全)
二。同步关键字和可变关键字的比较
volatile关键字是线程同步的轻量级实现,所以volatile关键字的性能肯定比synchronized关键字好。但是,volatile关键字只能用于变量,而synchronized关键字可以修饰方法和代码块。
(更多相关面试问题推荐:java面试问答)
在JavaSE1.6中实现synchronized关键字后,主要包括引入偏向锁和轻量级锁来减少获取和释放锁带来的性能消耗,以及其他各种优化。之后执行效率明显提高,实际开发中使用synchronized关键字的场景还是比较多的。
对易变关键字的多线程访问不会被阻止,而同步关键字可能会被阻止。
volatile关键字可以保证数据的可见性,但不能保证数据的原子性。Synchronized关键字可以保证这两者(synchronized保证三个主要属性,原子性、有序性和可见性)。
volatile关键字主要用于解决多线程之间变量的可见性,synchronized关键字解决多线程之间访问资源的同步性。
推荐:java入门。以上是java工程师采访——volatile关键字的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。