gpt4 book ai didi

c# - 哪些现有的 CLR 主机不提供托管和非托管线程之间的一对一映射?

转载 作者:行者123 更新时间:2023-11-30 15:32:44 24 4
gpt4 key购买 nike

我知道我不应该依赖托管和非托管线程之间的一对一映射。从 MSDN 开始:

操作系统 ThreadId 与托管线程没有固定关系,因为非托管主机可以控制托管线程和非托管线程之间的关系。具体来说,复杂的主机可以使用 Fiber API 针对同一操作系统线程调度多个托管线程,或者在不同的操作系统线程之间移动托管线程。

但在现实生活中,是否存在这样的 CLR 主机?(如果存在,它们是什么?)我刚刚回答了一个相关问题,我想知道我对 that particular case 的建议实际上有多糟糕。

最佳答案

其中一个可能是 Microsoft SQL Server(从 2005 版开始)。 IIRC 甚至应他们的要求将特定的托管支持内置到 CLR 2.0 中(更多背景信息请参见 this blog post),这样他们在使用纤程(又名用户模式调度)而不是 SQL Server 中的线程时也可以支持 CLR。

然而,这似乎从来没有真正起作用(source):

Common language runtime (CLR) execution is not supported under lightweight pooling. Disable one of two options: "clr enabled" or "lightweight pooling.

我认为可以相当安全地假设那里没有(生产就绪的)主机,它们不会将 CLR 线程映射到主机线程 1:1。

围绕 SO 的几个问答似乎暗示了同样的问题。

例如,

关于c# - 哪些现有的 CLR 主机不提供托管和非托管线程之间的一对一映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436409/

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