/**
* 懒汉
* @author yushanglicai
*
*/
public class LazyManSingleton {
private static LazyManSingleton singleton;
private LazyManSingleton()
{
printString();
}
public static synchronized LazyManSingleton getInstance()
{
if(singleton == null)
{
System.out.println("thread get a instance");
singleton = new LazyManSingleton();
}
return singleton;
}
public void printString()
{
System.out.println("lazy man...");
* 懒汉
* @author yushanglicai
*
*/
public class LazyManSingleton {
private static LazyManSingleton singleton;
private LazyManSingleton()
{
printString();
}
public static synchronized LazyManSingleton getInstance()
{
if(singleton == null)
{
System.out.println("thread get a instance");
singleton = new LazyManSingleton();
}
return singleton;
}
public void printString()
{
System.out.println("lazy man...");
}
多线程并发时,需要做如下修改
public static getInstance()
{
if(instance == null)
{
synchronized(LazyManSingleton.class)
{
instance = new LazyManSingleton();
}
}
return instance;
}
/**
* 饿汉
* @author yushanglicai
*
*/
public class HugerManSingleton {
private static HugerManSingleton singleTon = new HugerManSingleton();
private HugerManSingleton()
{
}
public static HugerManSingleton getInstance()
{
return singleTon;
}
public void printString()
{
System.out.println("hunger man...");
}