Why need two IF in singleton pattern in the multiple threads scenario
2012-09-03 10:35
429 查看
Refer to http://blog.163.com/xhy_cy/blog/static/1049762320112305016599/
private readonly string connectionString; // only can be initializable once private static object syncRoot = new Object();//为了解决多线程,而添加的一个附加变量,以避免死锁 public static SConnection Instance{ get{ if (instance == null){//第一个进程和第二个进程同时走到此,判断都为true lock (syncRoot){//第一个线程锁定,在释放前不允许其他线程进入,只能等待 if (instance == null){//作用是只允许实例化一次,避免再次被实例化 instance = new SConnection(); } } } return instance; } }
相关文章推荐
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Three ways of implementing the Singleton Pattern in Java
- Two Solutions to fix issue: ORDER BY items must appear in the select list if the statement contains a UNION, ...
- Implementing the Singleton Pattern in C#[转载]
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Multiple Threads in the User Interface
- 【转】单体模式-经典实现 Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- [C#] [C# in Depth] Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#
- 单件模式在C#中的实现--Implementing the Singleton Pattern in C#
- Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never diffe
- Book Contents Reviews Notes Errata Articles Talks Downloads Resources Code Formatter Cover of C# in Depth Order now (3rd edition) Implementing the Singleton Pattern in C#
- Implementing the Singleton Pattern in C#