面试题:保证在多线程环境下只有一个对象被创建 工厂模式实现
因为在实例化对象时,可能会出现指令重排序问题,导致其他线程看到一个未完全构造的对象。在 Java 中使用工厂模式实现线程安全的单例模式,可以通过以下几种方式来保证在多线程环境下只有一个。:在同步块内部,再次检查实例是否已经被创建,如果仍然没有创建,则在同步块内创建实例。这种方法延迟实例化对象,只有在需要时才创建实例,并通过双重检查锁定来保证线程安全。这种方法在类加载的时候就实例化对象,线程安全且实现简单,但可能会导致资源浪费。:在进入同步块之前,检查实例是否已经被创建,如果已经创建,直接返回实例。
原创
2024-07-31 21:47:38 ·
20 阅读 ·
0 评论