zoukankan      html  css  js  c++  java
  • .NET程序默认启动线程数

    问:一个.NET程序在运行时到底启动了多少个线程?

    答:至少3个。

    1. 启动CLR并运行Main方法的主线程
    2. 调试器帮助线程
    3. Finalizer线程
      class Program
      {
        static void Main(string[] args)
        {
          Console.WriteLine("Main thread: {0}",
            Thread.CurrentThread.ManagedThreadId);
          Console.ReadKey();
        }
      }

    通常,CLR会根据情况启动更多的特殊线程。

    • Finalizer线程:该线程负责运行GC进行垃圾对象回收。
    • 并发的GC线程:GC会根据情况启动更多的线程并发进行垃圾回收。
    • 服务器GC线程:在服务器GC模式下,CLR可能会为多核机器的每个核创建GC托管堆和回收线程。
    • 调试器帮助线程:该线程负责为类似WinDbg等调试器提供帮助。
    • AppDomain卸载线程:CLR可能会启动一个工作线程来卸载应用程序域。
    • ThreadPool线程:ThreadPool会根据情况创建线程。
  • 相关阅读:
    Chain of Responsibility Pattern
    Visitor Pattern
    Command Pattern
    Mediator Pattern
    Memento Pattern
    Observer Pattern
    State Pattern
    Strategy Pattern
    HTMLTestRunner修改Python3的版本
    loadrunner 检查点
  • 原文地址:https://www.cnblogs.com/gaochundong/p/dotnet_app_default_thread_count.html
Copyright © 2011-2022 走看看