线程安全单例,面试里优先写哪种

132次阅读
没有评论

面试里让你写线程安全单例,通常不是只看结果能不能跑,而是看你是否理解并发下的可见性、指令重排和初始化时机。准备时不需要背很多变种,先抓住两种常用写法就够了。

双重检查锁适合展示并发理解

双重检查锁的重点不只是 synchronized,还包括为什么实例引用需要配合 volatile。如果只把代码写出来,但说不清这个点,面试官通常会继续追问。

静态内部类写法更简洁

如果题目更偏实际工程,静态内部类方案往往更容易写对。它利用类加载时机完成延迟初始化,不需要每次获取实例都做同步判断。

不同写法要知道取舍

饿汉式实现简单,但不是严格意义上的延迟加载;懒汉式如果没有同步保护,就会有线程安全问题。能把这些取舍顺手讲出来,会比只写一种答案更好。

别忽略反射和序列化破坏单例

如果岗位偏资深,可以补一句:单例模式在反射和反序列化场景下还可能被破坏,需要额外保护。这个点很短,但常常能体现深度。

结论

线程安全单例这道题,优先准备双重检查锁和静态内部类两种写法,再补上背后的并发原因,基本就够用了。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-04-08发表,共计432字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)