Thread-Safe的static data member初始化方法

对于static data member的initialization,如果是在multi-threading的环境下,可以采用如下方法初始化:
 1              if (s_data == null)
 2              {
 3                  lock (s_dummy) // here s_dummy cannot be null
 4                  {
 5                      if (s_data == null)
 6                      {
 7                          // initialize s_data here
 8                      }
 9                  }
10              }
11 


这样做的好处是既不影响performance,又能确保thread-safe。
posted on 2006-04-18 12:01  万俊峰Kevin  阅读(763)  评论(3编辑  收藏  举报