gpt4 book ai didi

.net - 托管线程多久切换一次操作系统线程?

转载 作者:行者123 更新时间:2023-12-02 02:18:21 24 4
gpt4 key购买 nike

我了解托管线程不能保证在同一操作系统线程上运行。

如果 CLR 可以在操作系统线程之间切换托管线程,这种情况发生的频率是多少?什么影响频率?

我有一个 separate question关于如何阻止切换发生。对我来说,第二个奖是这种情况不要发生得太频繁(每分钟少于一次就可以了)。

最佳答案

这完全取决于主机。对于给定的任何特定主机,无法保证何时何地可能发生线程切换(如果有的话)。

但是,从 .NET 2.0 开始,您可以调用静态 BeginThreadAffinity 方法来通知主机正在运行的代码取决于底层操作系统线程的标识:

http://msdn.microsoft.com/en-us/library/system.threading.thread.beginthreadaffinity(VS.80).aspx

当然,请确保在线程完成时调用 EndThreadAffinity 方法(我不确定如果您只是让线程结束而不调用 EndThreadAffinity 会发生什么。我无法想象它会产生影响,但它是最好在这件事上明确说明,IMO):

http://msdn.microsoft.com/en-us/library/system.threading.thread.endthreadaffinity(VS.80).aspx

关于.net - 托管线程多久切换一次操作系统线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com