默认情况下,每个托管线程都映射到一个OS线程。但是,通过使用CLR托管API,您可以将托管线程迁移到其他本机OS线程。
从MSDN:
操作系统ThreadId与托管线程没有固定的关系,因为非托管主机可以控制托管线程和非托管线程之间的关系。具体地说,复杂的主机可以使用CLR Hosting API来针对同一操作系统线程调度许多托管线程,或者在不同的操作系统线程之间移动托管线程。
但是,您可以通过调用Thread.BeginThreadAffinity来要求CLR不要将托管线程移动到另一个OS线程。
这意味着.NET线程模型为N:M。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句