.net - Windows 每秒多久进行一次线程切换?

标签 .net windows multithreading

<分区>

Windows(通常)每秒进行一次线程切换的频率是多少?这与 .NET 线程不同吗?或者反过来问:一个线程(比如说,普通线程优先级)允许运行多长时间?

最佳答案

Windows 上下文切换的频率取决于系统“量子”。这个量程范围为 10-15 毫秒(每秒 66-100 次),具体取决于操作系统是客户端还是服务器。有关详细信息,我建议阅读 Joe Duffy 的书 Windows 上的并发编程;它详细介绍了这样的事情——例如详细说明“客户端操作系统……是 2 个时钟间隔。……在服务器操作系统上……是 12 个时钟间隔”。此外,他的文章 [CLR Inside Out: Using concurrency for scalability][1] 是必读的。

您可以“编辑”量子长度。如果您将系统属性中的性能选项/高级中的“调整以获得最佳性能:”设置为“程序”,您将获得更短的量程。如果您将其设置为“后台服务”,您将获得更长的时间。

如果没有理由进行上下文切换,线程将获得所需的时间。

[1] http://www.360doc.cn/article/28217_2474333.html

关于.net - Windows 每秒多久进行一次线程切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320748/

相关文章:

c# - 什么时候可以不调用 Application_EndRequest?

java - 无法在 Windows 中更改 Java 版本

android - 使用 RoboSpice 进行异步线程

c# - 如何从 xaml 中引用 .resx 文件中的图标?

c# - 如何使用 .NET 4 代理 REST API

.Net框架2.0配置工具

c++ - 如何检查模板的哪些部分被实例化?

c++ - MSVC 2008 Immediate Window 废话和一些代码困惑

c# - 刷新高速缓存时如何提供过时的数据?

c++ - 如何查找程序崩溃的位置