并发编程中的概念:发布 与 逸出

  “发布(Publish)”一个对象的意思是指,使对象能够在当前作用域之外的代码中使用。将一个指向该对象的引用保存到其他代码可以访问到的地方,或者在某一个非私有的方法中返回该引用。什么意思呢?看下面的程序实例:

      public  static Set<Sercret>  knownSercrets;

      public void initialize(){

    knownSercrets  =  new HashSet<Secret>();

     }

    这就是发布一个对象。很显然这会存在线程安全问题。比如:如果在对象构造完成之前就发布该对象,就会破坏线程安全性。

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

posted @ 2016-02-27 00:10  张-晓  阅读(218)  评论(0编辑  收藏  举报