单例模式介绍及其线程安全问题

    介绍下单例模式,即保证对一个类只实例化一个对象。实际生产例子有,Spring的bean默认创建模式等。

  单例模式的组成:包括一个私有的构造器,一个私有的静态变量,一个公有的静态方法。单例模式本身很简单,主要复杂点是在它在线程并发下的如何保证 线程安全+资源消耗少 的问题。

  一.饿汉式单例(线程安全)

缺点:直接实例化,资源会浪费。丢失了延迟实例化的性能好处。

 二.懒汉式单例(线程不安全)

 缺点:线程不安全,如果多个线程能够同时进入 if (instance == null) ,并且此时 instance 为 null,那么会有多个线程执行 instance = new LazySingleton(); 语句,这将导致实例化多次对象。即此类不是单例了。

猜你喜欢

转载自www.cnblogs.com/liumz0323/p/10424789.html
今日推荐