在棧封閉中,只能通過局部變量才能訪問對象。
所謂棧封閉就是把變量的聲明以及應用都局限在一個局部線程中,在這個局部線程中聲明和實例化的對象對於線程外部是不可見的,這個局部線程的棧,無法被任何其他線程訪問。
不可變對象一定是線程安全的
要安全發布一個對象,對象的引用以及對象的狀態必須同時對其他線程可見。
1、在靜態初始化函數中初始化一個對象的引用
2、將對象的引用保存到volatitle類型的域或者AtomicReferance對象中
3、將對象的引用保存到某個正確構造對象的final類型域中。
4、將對象的引用保存到一個由鎖保護的域中。