当前位置: 代码迷 >> 综合 >> 单例模式之懒汉的并发问题,只需要添加一个 synchronized 就可以解决了
  详细解决方案

单例模式之懒汉的并发问题,只需要添加一个 synchronized 就可以解决了

热度:24   发布时间:2023-12-16 14:30:16.0

复现并发问题:

package review.bank;/*** Created by kodulf on 2017/2/26.*/
public class SingleInstanceLazyMan {private SingleInstanceLazyMan(){}static SingleInstanceLazyMan singleInstanceLazyMan ;//synchronized 如果不添加,那么会出现三个进程一起调度的情况public static SingleInstanceLazyMan getInstance(){if(singleInstanceLazyMan==null){System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());System.out.println("before new "+Thread.currentThread().getName());singleInstanceLazyMan = new SingleInstanceLazyMan();System.out.println("after new "+Thread.currentThread().getName());System.out.println("after new "+Thread.currentThread().getName());System.out.println("after new "+Thread.currentThread().getName());System.out.pri
  相关解决方案