首页 > 代码库 > 发布线程安全的对象

发布线程安全的对象

一。总

发布对象:使对象能在当前作用域之外的代码中使用。既将对象的引用传递到其他类的变量和方法。

(1)变量的静态初始化

(2)声明为volatile变量 或 AtomicReferance对象

(3)声明为final变量

(4)将变量保存在线程安全的容器中(既保存在一个由锁保护的域中)

 

二。分

1.成员变量的初始化:

(1)直接初始化

(2)构造函数初始化

 

2.在Java内存模型中,final域能确保初始化过程的安全性,从而可以不受限制的访问不可变对象,并在共享这些对象时无需同步。

在可变对象基础上构建的不可变类:虽然Set对象是可变的,但Set对象通过ThreeStooges的构造函数后,无法对其修改。

public final class ThreeStooges {    private final Set<String> stooges = new HashSet<String>();        public ThreeStooges(){        stooges.add("A");        stooges.add("B");        stooges.add("C");    }        public boolean isStooge(String name){        return stooges.contains(name);    }}

 

发布线程安全的对象