您的位置:首页 > 其它

多线程时的单例

2016-02-17 16:25 323 查看
//方法一

class Singleton

{

private static Singleton instace;

private static readyonly object syncRoot=new object(); //程序运行时创建一个静态只读的进程辅助对象

private Singleton() //私有构造函数

{}

public static Singleton GetInstace()

{

if(instace ==null)

{

lock(syncRoot) //lock确保党一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入则会一直等待,直到该对象被释放

{

if(instace ==null)

{

instance=new Singleton();

}

}

}

return instance;

}

}

//方法二

public sealed class Singlon

{

publiic static readyonly Singlon instance=new Singlon();

private Singlon(){}

public static Singlon GetInstance()

{ return instance};

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: