“你好世界”应用程序在.NET4.0中使用4个线程,但在.NET2.0中使用3个线程
当运行最基本的“Hello, World!”时为 .NET2.0 编译的应用程序您应该看到 3 个线程(Main、GC 和 Finalizer)。然而,在 .NET4.0 版本中,对于相同的基本应用程序,该数字会增加到 4。有谁知道多余的线是做什么用的吗?
When running the most basic "Hello, World!" application compiled for .NET2.0 you should see 3 threads (Main, GC and Finalizer). However, with a .NET4.0 build that number goes up to 4 with the same basic application. Does anyone know what the extra thread is for?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自 .NET4 起,线程池默认保留空闲线程(如 MSDN 指出)。
我找不到它们的数量是如何指定的(尽管您可以使用 SetMinThreads 更改它),它可能不是。
这篇 dotNetPerls 文章表明,它还取决于计算机上的核心数量(这是有道理的) 。
您可以在您的机器/特定程序上进行测试,以使用两个 CLR 打印 ThreadPool.GetMinThreads()。
The thread pool keeps idle thread(s) by default since .NET4 (as MSDN points it).
I cant find how their number is specified (although you can change it with SetMinThreads), it probably isnt.
This dotNetPerls article suggests that it depends also on the number of cores on the machine (which makes sense).
You could test on your machine/specific program to print ThreadPool.GetMinThreads() with both CLRs.