可清除的单例对象获取类
Posted math-and-it
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可清除的单例对象获取类相关的知识,希望对你有一定的参考价值。
public abstract class EnableCleanSingle<T> private volatile T object; private int updateCount; public T getObject() if(object == null) synchronized (this) if(object == null) createObject(); updateCount++;
//这里在并发的时候,可能会返回null
//解决方法:将整个方法都设为synchronized,但影响性能,这里就不改了
return object;
public void cleanObject()
int old = updateCount;
if(object != null)
synchronized (this)
if (updateCount == old)
object = null;
abstract public T createObject();
以上是关于可清除的单例对象获取类的主要内容,如果未能解决你的问题,请参考以下文章