如何安全的发布对象

84 阅读1分钟

安全的发布对象必须满足以下任一一个条件

通过静态初始化器初始化对象的引用

将它的引用储存到volatile域或AtomicReference

在final定义的域中创建

在由锁保护的域中创建

为什么要安全的发布对象?

有些对象在发布后不需要更改,其他线程可以在没有额外同步的条件下安全的访问他们。访问对象时不需要再去同步。所以安全的发布就变得至关重要。

如:public Map<String,Date> lastLogin = Collections.synchronizedMap(new HashMap<String,Date>());