码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2015-11-18 12:25:42      阅读:125      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!