一个单例模式引发的丢失一个offer的血案
今天下午去面试,二面面了有一个半小时,最后面试官说,你写个代码吧,你一定要注意各种语法啊,考虑效率啊,blabla...你写个单例模式吧。
然后我就开始写了。。。
然后写了下面的代码给面试官,然后说,多线程加锁的代码忘了具体是什么了。。。
static Singleton* instance() {public class Singleton { private static Singleton single; //声明静态的单例对象的变量 private Singleton() {} //私有构造方法 public static Singleton getSingle() { //外部通过此方法可以获取对象 if (single == null) { synchronized (Singleton.class) { //保证了同一时间只能只能有一个对象访问此同步块 if (single == null) { single = new Singleton(); } } } return single; //返回创建好的对象 }}
这些代码都是双检锁 Double-checked locking pattern