首页 > 其他 > 详细

单例模式

时间:2015-11-18 12:23:15      阅读:215      评论:0      收藏:0      [点我收藏+]

第一种:(懒汉)线程不安全

 public class Singleton {

  private static Singleton instance;

private Singleton(){

public static Singleton getInstance(){
if(instance == null){

instance = new Singleton();

return  instance;

}

 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。

 第二种:(懒汉)线程安全

public class Singleton {

  private static Singleton instance;

private Singleton(){}

public static synchronized Singleton getInstance(){

 if(instance == null){

instance = new Singleton(); 

return instance; 

 

 这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要同步。

 第三种:(饿汉)

public class Singleton{

private static Singleton instance = new Singleton();

private Singleton(){}

private static Singleton getInstance(){

  return instance;

第四种:(饿汉,变种)

public class Singleton{

  private static Singleton instance = null;

static{

  instance = new Singleton();

  private Singleton(){}

public static Singleton getInstance(){

  return instance;

  }

 

单例模式

原文:http://www.cnblogs.com/vanl/p/4973783.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!