扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:阎宏博士 来源:天极网 2007年11月9日
关键字:
Public Shared Function GetInstance() As Product Thread.Sleep(10) '位置1 '位置2 m.WaitOne() '位置3 If (instance Is Nothing) Then '位置4 instance = New Product() End If m.ReleaseMutex() Return instance End Function |
代码清单7、省略了第一重检查的线程安全的工厂方法 |
If (instance Is Nothing) Then '位置1 '位置2 m.WaitOne() '位置3 instance = New Product() m.ReleaseMutex() End If Return instance |
代码清单8、省略了第二重检查的线程安全的工厂方法 |
图2、一个Singleton类 |
Public Class Singleton Private Shared instance As Singleton Private Shared m As Mutex = New Mutex() Public Sub New() System.Console.WriteLine("Singleton object is created.") End Sub Public Shared Function GetInstance() As Singleton Thread.Sleep(10) If instance Is Nothing Then m.WaitOne() If instance Is Nothing Then instance = New Singleton() End If m.ReleaseMutex() End If Return instance End Function End Class |
代码清单9、二重检查的线程安全的Singleton类 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者