Java设计模式-之Singleton单例模式
public class ThreadLocalDCL{ private static ThreadLocal initHolder = new ThreadLocal(); private static Resource resource = null; public Resource getResource(){ if(initHolder.get() == null){ synchronized{ if(resource == null) resource = new Resource(); initHolder.set(Boolean.TRUE); }}return resource; }}
利用ThreadLocal虽然实现了线程安全,同时效率也比较高,但是由于为每个线程都保留了一个单例对象,势必会占用更多的资源。
而且,这个方案的本质是为每个线程创建一个单例的对象,而不是全局所有的线程。
以上是我自己研究ThreadLocal相关文档后得出的结论,请大家指正。