(资料图)
诸多的对于singleton翻译,singleton这个问题都颇为感兴趣的,为大家梳理了下,一起往下看看吧。
1、singleton顾名思义就是只有一个元素的集合。在java中,它是从只有一个实例的类派生的。这样,我们就可以很容易理解单件模式的定义。所谓单利,就是只有一个例子,仅此而已。
2、那么我们为什么需要这样一个模型呢?这是因为在许多情况下,环境条件要求我们必须有且只有一个实例。例如,打印机一次只能打印一个文件,因此需要一个只有一个实例的类来存储需要打印的内容。
3、单例模式有三个要点。第一个也是最重要的一个是一个类中只能有一个实例。第二是他必须自己创造这个例子,第三也是和外界联系的重要一步,就是他可以把这个功能提供给其他类。
4、在这里,我们来谈谈实现singleton模式的几种方法。第一种是最常见的懒人模式。
5、这个必须同步才能在多线程中工作,但是这样添加同步锁会大大影响效率,也就是说getinstance方法只有在不是系统中关键步骤的情况下才能考虑。
6、第二种是DCL双重检查锁,DLC的全称是双重检查锁。
7、双锁的改变使得这种并发情况的效率远远大于上面的懒惰模式。
8、虽然实现复杂,但效率更高。