1、volatile关键字  

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

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

2、发布和逸出

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

  当某个不该发布的对象被发布时,这种情况称为逸出(Escape).比如下面的代码:

 1 public class UnsafeStates {
 2     private String[] states = new String[]{
 3             "one",
 4             "two"
 5     };
 6 
 7     public String[] getStates() {
 8         return states;
 9     }
10 
11     public void setStates(String[] states) {
12         this.states = states;
13     }
14     
15 }
View Code

相关文章:

  • 2021-04-08
  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
  • 2022-01-11
  • 2021-09-23
  • 2021-12-09
猜你喜欢
  • 2021-10-22
  • 2021-11-09
  • 2021-05-16
  • 2022-12-23
  • 2021-11-22
  • 2021-12-14
相关资源
相似解决方案