Java并发--安全发布对象
单例模式
懒汉模式:多线程非线程安全,在多线程中,可能会产生多个对象
饿汉模式:线程安全。
类加载的时候初始化,不推荐在构造函数需要做耗时操作的时候使用,因为可能导致类加载缓慢,而且可能初始化后并没有使用
懒汉模式+synchronized修饰方法
这可以保证线程安全,但不推荐这种写法,因为同一时刻只能有一个线程来访问,会造成性能问题
双重检验锁:不是线程安全的,因为指令重排
双重检验锁+volatile:限制指令重排,线程安全
懒汉模式:多线程非线程安全,在多线程中,可能会产生多个对象
饿汉模式:线程安全。
类加载的时候初始化,不推荐在构造函数需要做耗时操作的时候使用,因为可能导致类加载缓慢,而且可能初始化后并没有使用
懒汉模式+synchronized修饰方法
这可以保证线程安全,但不推荐这种写法,因为同一时刻只能有一个线程来访问,会造成性能问题
双重检验锁:不是线程安全的,因为指令重排
双重检验锁+volatile:限制指令重排,线程安全