zoukankan      html  css  js  c++  java
  • C#中静态构造函数导致的一个deadlock

    Eric Lipper的这篇博客举了一个C#中静态构造函数导致的deadlock的例子,很有意思。

    代码如下:

    class C
    {
      static C() 
      {
        // Let's run the initialization on another thread!
        var thread = new System.Threading.Thread(Initialize);
        thread.Start();
        thread.Join();
      }
      static void Initialize() { }
      static void Main() { }
    }

    原因很简单,静态构造函数需要在第一次用到这个类静态方法或者实例之前调用结束,就是说C()在等Initialize(),但是Initialize()必须在C()结束后才能被调到。

  • 相关阅读:
    经典入门_排序
    经典入门_贪心算法
    经典入门_Hash的应用
    经典入门_排序
    uva 839
    uva 327
    uva 699
    uva 712
    uva 297
    uva 548
  • 原文地址:https://www.cnblogs.com/fresky/p/2893305.html
Copyright © 2011-2022 走看看