![]() |
#2
有多难2018-04-18 22:58
|

package com.xiaoa.demo;
/**
* 懒汉模式
*
* @author niyite
*
*/
public class LazySingle {
private static LazySingle newInstance = null;
private LazySingle() {
}
public static LazySingle getnewInstance() {
if (newInstance == null) {
newInstance = new LazySingle();
}
return newInstance;
}
}
/**
* 懒汉模式
*
* @author niyite
*
*/
public class LazySingle {
private static LazySingle newInstance = null;
private LazySingle() {
}
public static LazySingle getnewInstance() {
if (newInstance == null) {
newInstance = new LazySingle();
}
return newInstance;
}
}
加锁懒汉模式,在创建新对象之前加了一个同步锁,避免了多线程情况下的线程安全问题。

package com.xiaoa.demo;
/**
* 加锁懒汉模式
*
* @author niyite
*
*/
public class SyncLazySingle {
private static SyncLazySingle newInstance = null;
private SyncLazySingle() {
}
public static SyncLazySingle getnewInstance() {
if (newInstance == null) {
synchronized (SyncLazySingle.class) {
if (newInstance == null) newInstance = new SyncLazySingle();
}
}
return newInstance;
}
}
/**
* 加锁懒汉模式
*
* @author niyite
*
*/
public class SyncLazySingle {
private static SyncLazySingle newInstance = null;
private SyncLazySingle() {
}
public static SyncLazySingle getnewInstance() {
if (newInstance == null) {
synchronized (SyncLazySingle.class) {
if (newInstance == null) newInstance = new SyncLazySingle();
}
}
return newInstance;
}
}
饿汉模式:操作最简单

package com.xiaoa.demo;
/**
* 饿汉模式
*
* @author niyite
*
*/
public class HungrySingle {
private static final HungrySingle newInstance = new HungrySingle();
public HungrySingle() {
}
public static HungrySingle getnewInstance() {
return newInstance;
}
}
/**
* 饿汉模式
*
* @author niyite
*
*/
public class HungrySingle {
private static final HungrySingle newInstance = new HungrySingle();
public HungrySingle() {
}
public static HungrySingle getnewInstance() {
return newInstance;
}
}
[此贴子已经被作者于2018-4-19 08:29编辑过]