在我们写程序时,经常会用到单件模式,单件模式是一个类只拥有一个实例对象(或者拥有多个固定数量的实例对象)。下面我给出一个使用多线程的单件模式demo。
package com;
public class Single {
private static Single _instance = null;
private static Object lock = new Object();
//设置为私有构造函数,封死外部调用构造函数新建实例
private Single()
{
}
public static Single get()
{
if ( _instance == null )
{
//设置同步锁,以免多线程并发时,创建多个实例
synchronized (lock) {
if ( _instance == null )
{
return _instance = new Single();
}
}
}
return _instance;
}
}