class Single {
private Single() {
};
static Object obj = new Object();
private static Single s = null;
/**
* 用同步代码块,不需要每次都判断锁,效率高
*/
public static Single getSingle1() {
if (s == null) {
synchronized (obj) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
/**
* 用同步方法,每次都需要判断锁,效率低
*/
public static synchronized Single getSingle2() {
if (s == null) {
s = new Single();
}
return s;
}
}多线程下的懒汉模式,同步代码块和同步方法
最新推荐文章于 2022-03-16 12:45:11 发布
本文详细解析了单例模式的两种实现方式:一种是使用同步代码块提高效率,另一种是采用同步方法。通过对比这两种方法,阐述了它们在实际应用中的优缺点。
998

被折叠的 条评论
为什么被折叠?



