物件的共享(一) 發布和逸出

2021-07-11 09:21:44 字數 586 閱讀 4769

「發布(publish)」乙個物件的意思是,是物件能夠在當前作用域之外的**中使用。例如,將乙個指向該物件的引用儲存到其他**可以訪問的地方,或者是在某乙個非私有的方法中返回該物件的引用,或者將物件的引用傳遞到其他類的方法中。

「逸出(escape)」:當某個不應該發布的物件被發布時。

上面的定義比較抽象,下面看乙個物件「逸出」的示例:

package concurrency.ch03;

class unsafestates ;

public unsafestates()

public string getstates()

}

package concurrency.ch03;

public class unsafestatestest

}

示例分析:

首先,在類unsafestates中,按照上述方式來發布states,就會出現問題。類定義的陣列states已經逸出了它所在的作用域,因為任何呼叫者都可以修改這個陣列的內容。但這個陣列本身被宣告成私有的變數,但它已經被發布了。

Java併發學習筆記(8 發布逸出

發布逸出 1 發布 發布是指將乙個物件,使其引用儲存到乙個其他 可以訪問到的地方,在乙個非私有方法返回這個引用,也可以把它傳遞到其他物件中.a 發布最簡單的就是將物件設定到公共靜態域中 b 發布第二種簡單的方式就是在乙個公共方法內直接return 物件的引用 第三種的發布就很隱秘了.就是講自身的物件...

Apad Qzone專案總結 一 發布!!!

專案週期 2011.09.26 2011.12.13 2周乙個迭代,一共4個迭代,一周測試 產品人員 大胖 開發人員 frankie 迭代0 3 大v 迭代0 迭代1 siwei 迭代3 互動人員 toya cdc 設計師 玻璃渣 cdc 測試 sally,引誘哥等.記得當時接到專案,我和大v倆個人...

Apad Qzone專案總結 一 發布!!!

專案週期 2011.09.26 2011.12.13 2周乙個迭代,一共4個迭代,一周測試 產品人員 大胖 開發人員 frankie 迭代0 3 大v 迭代0 迭代1 siwei 迭代3 互動人員 toya cdc 設計師 玻璃渣 cdc 測試 sally,引誘哥等.記得當時接到專案,我和大v倆個人...