Java多线程——volatile关键字发布和逸出

Posted Hxinguan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程——volatile关键字发布和逸出相关的知识,希望对你有一定的参考价值。

1、volatile关键字  

Java语言提供了一种稍弱的同步机制,即volatile变量。被volatile关键字修饰的变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在每次读取volatitle类型变量时总会返回最新的值,而不是从寄存器中获取。

  加锁机制既然可以确保可见性又可以确保原子性,而volatile只能确保可见性。

2、发布和逸出

  发布(Publish)”一个对象指,使对象能够在当前作用域之外的代码中使用。如将指向该对象的引用保存到其他代码可以访问的地方,或者在某一个非私有的方法中返回该引用,或者将引用传递到其他类的方法中。

  当某个不该发布的对象被发布时,这种情况称为逸出(Escape).

以上是关于Java多线程——volatile关键字发布和逸出的主要内容,如果未能解决你的问题,请参考以下文章

多线程中的Java volatile关键字

java多线程关键字volatile的使用

Java多线程编程——volatile关键字

java多线程03-----------------volatile内存语义

Java多线程volatile域

多线程下的volatile关键字使用详解及Java先行发生原则