当前位置: 移动技术网 > IT编程>开发语言>.net > 基于.NET程序默认启动线程数讲解

基于.NET程序默认启动线程数讲解

2017年12月12日  | 移动技术网IT编程  | 我要评论
问:一个.net程序在运行时到底启动了多少个线程? 答:至少3个。 1.启动clr并运行main方法的主线程2.调试器帮助线程3.finalizer线程复制代码 代码如

问:一个.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会根据情况创建线程。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网