每个托管线程都有自己的相应本机线程吗?

我想知道在.Net中创建托管线程(通过调用Thread.Start() )是否会导致在后台创建一个本机线程? 那么托管线程是否有相应的本机线程? 如果是,当托管线程等待或hibernate时,是否意味着相应的本机线程也在等待或hibernate?

是的,.NET线程映射到所有当前CLR主机上的本机操作系统线程。

可以通过ICLRTaskManager接口将其映射到托管api中的其他内容,如光纤,但实际上并未在任何主流主机中实现。 .NET 2.0时间范围内的SQL Server团队尝试了这一点,但是当项目无法使其足够可靠时,该项目就被放弃了。 这没有再次尝试。 从技术上讲,你可以遇到一个由非托管程序启动的自定义托管CLR,它实现了这种映射,但几率很低。