• Java技术题-JavaSE 单例模式详解Ⅱ

    发布:51Code 时间: 2017-05-18 13:10

  • 博为峰小博老师: 上篇文章实现没有考虑线程安全问题。所谓线程安全是指:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结...

  • 博为峰小博老师:

           上篇文章实现没有考虑线程安全问题。所谓线程安全是指:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。显然以上实现并不满足线程安全的要求,在并发环境下很可能出现多个Singleton实例。

    运行结果:

      张孝祥

      张孝祥

      output message 张孝祥

      output message 张孝祥

      创建的是同一个实例

           结论:由结果可以得知单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。

           1.饿汉式单例类

    2.懒汉式单例类

    3.登记式单例类

        
  • 上一篇:Java技术题-JavaSE 单例模式详解Ⅰ

    下一篇:Spring注解@Autowied与@Resource的区别

网站导航
Copyright(C)51Code软件开发网 2003-2021 , 沪ICP备05003035号-6