线程开销

时间:2013-04-02 21:38:09

标签: .net multithreading

我需要对线程做一些澄清。 声称线程的1 MB内存开销是多少? 是在创建线程对象(costructor)还是调用Start()方法时? Start方法是否立即返回(在线程真正启动之前)?

如果我有一个创建并启动N个线程的循环> ThreadPool的maxThreads,循环是否会快速完成,或者它会等到所有线程都被创建并启动?

谢谢

1 个答案:

答案 0 :(得分:3)

  

是在创建线程对象(costructor)还是调用Start()方法时?

当线程实际启动时,会创建1mb(默认情况下,但可配置,因为它是线程的堆栈大小)。

  

Start方法是否立即返回(在线程真正启动之前)?

Start()方法是异步的,并立即返回。 Thread.Start的文档指定它“导致线程计划执行。”

  

如果我有一个创建并启动N个线程的循环> ThreadPool的maxThreads,循环完全快,还是等待创建并启动所有线程?

它会很快完成(或者至少不等待线程启动)。