我正在阅读一本C#4.0书,该书为线程池的最大线程限制提供了以下默认值。
在32位环境中的Framework 4.0中的
在64位环境中的Framework 4.0中的
谁能告诉我是什么可能导致默认值的大幅增加,尤其是对于64位?上下文切换问题解决了吗?
过去,我们对线程池的大小设置了合理的限制,因为似乎存在一个“甜蜜点”,此后,由于上下文切换,我们的应用程序速度变慢了。自然,我们将在更新目标框架后进行压力测试并重新进行基准测试。但是,有谁能对启用更大线程池的框架进行哪些改进有所了解?还是只是MS增加默认值看起来令人印象深刻?
最佳答案
上下文切换的问题尚未解决(由于其性质属于OS)。但是,如果使用ThreadPool进行上下文切换(异步),则上下文无关紧要。由于新的TPL及其必须解决的其他一些需求,.NET ThreadPool调度程序得到了改进。
尝试从CLR 4.0 ThreadPool Improvements开始
还要检查:Throttling Concurrency in the CLR 4.0 ThreadPool和此great video
关于.net - .NET 4.0线程池中有哪些改进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958972/