c# – .NET线程是否与 *** 作系统线程不同?

c# – .NET线程是否与 *** 作系统线程不同?,第1张

概述> .NET线程是轻量级用户模式线程还是内核模式 *** 作系统线程? >另外,保留SQL Server,.NET线程和 *** 作系统线程之间是否存在一对一的对应关系? 我也很感兴趣,因为Thread类有一对名为BeginThreadAffinity和EndThreadAffinity的对称方法,其文档巧妙地暗示.NET线程是对真实 *** 作系统线程的轻量级抽象. 此外,我刚才读到一些堆栈溢出线程本身,微软试图在CL > .NET线程是轻量级用户模式线程还是内核模式 *** 作系统线程?
>另外,保留sql Server,.NET线程和 *** 作系统线程之间是否存在一对一的对应关系?

我也很感兴趣,因为Thread类有一对名为BeginThreadAffinityEndThreadAffinity的对称方法,其文档巧妙地暗示.NET线程是对真实 *** 作系统线程的轻量级抽象.

此外,我刚才读到一些堆栈溢出线程本身,微软试图在CLR中维护这种分离,就像sql Server一样.我记得有一些项目正在使用Fiber API来实现这个目的,但我不能说我理解了所读的所有细节.

我想要一些关于这个主题的更详细的文献,比如.NET线程的内部结构与windows创建的线程的内部结构相比.虽然有很多关于windows创建的线程结构的信息,但Jeffrey Richter的高级windows编程书是其中一个来源,例如,我找不到任何专门用于.NET线程内部结构的文献.

有人可能会争辩说,这些信息可以在.NET源代码中找到,现在可以公开使用,或者使用反汇编程序,如Reflector或IL Spy,但我没有看到任何代表线程控制块(TCB)和程序的信息.计数器(PC)和堆栈指针(SP)或线程的等待队列,或者线程当前在Thread类中成员的队列列表.

我在哪里可以读到这个?文档中是否提到了它的任何内容?我已阅读了these pages from the MSDN的所有内容,但他们似乎并未提及它.

解决方法 .NET的线程确实是抽象的,但你基本上可以认为它们与OS线程几乎相同.特别是在垃圾收集方面存在一些关键差异,但绝大多数程序员(阅读:不太可能启动WinDBG的程序员)没有功能差异.

For more detail,read this

总结

以上是内存溢出为你收集整理的c# – .NET线程是否与 *** 作系统线程不同?全部内容,希望文章能够帮你解决c# – .NET线程是否与 *** 作系统线程不同?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存