zoukankan      html  css  js  c++  java
  • 关于Double Lock的疑问

    麻烦请教大家一个问题: 看到张老三的关于一个用double lock来产生线程安全的单例对象的方法突然有一个疑问,
    第一种方法:如果把这句话(事实上是一个随便的初始化过程)

    Dim source As IConfigurationSource = System.Configuration.ConfigurationSettings.GetConfig("activerecord")
                ActiveRecordStarter.Initialize([
    Assembly].Load("ASPNET.StarterKit.Portal.Model"), source)


    放在Double Lock的话而这个Double Lock放在一个普通的类文件(可能是基类)的话

    private static readonly object lockObj = new object();
    if ( _factory == null ) {
       
    lock ( lockObj ) {
          
    if ( _factory == null ) {
             
    // 放在这里;
          }
       } 
    // end lock
    }

    第二种方法:放在全局文件里面
     Sub Application_Start(ByVal sender As ObjectByVal e As EventArgs)
                
    ' 在应用程序启动时激发
                Dim source As IConfigurationSource = System.Configuration.ConfigurationSettings.GetConfig("activerecord")
                ActiveRecordStarter.Initialize([
    Assembly].Load("ASPNET.StarterKit.Portal.Model"), source)

            
    End Sub

    这两种方法能产生一样的效果吗(也就是说只初始化一次)?还是产生不同的效果?
  • 相关阅读:
    Maven private reprository 更新
    Spark运行模式:cluster与client
    Spark脚本调用
    Java中hashCode与equal方法详解
    String值传递剖析
    Comparator 与 Comparable
    深入理解Java的接口和抽象类
    HitHub使用
    二叉树的递归与非递归遍历
    P1137 旅行计划
  • 原文地址:https://www.cnblogs.com/Bruce_H21/p/405071.html
Copyright © 2011-2022 走看看