java 设计模式之单例模式
但是此例子却又一个缺点,那就是线程不够安全。那么接下来可能要做的就是对其进行改进从这个例子上看增加了synchronized可以使getInstanceA()变成一个同步的方法,这时线程在进入这个方法之前就需要等待其他线程离开这个方法才能进入,也就使得该方法只能同时存在一个线程在执行它。但这相较于延迟实例化而言可能会出现资源的浪费。那么是否可以在使用用延迟实例化的同时又不会造成线程不安全且增加访问效率呢。这样就可以使得执行getInstanceC()的时间减少。想必这里会发现有个volatile关键字,其作用是使得singletonC被初始化后对所有线程可见,多个线程可以正确地处理这个SingletonC变量。
用户评论