聊一聊 C# 线程切换后上下文都去了哪里

💡 原文中文,约10400字,阅读约需25分钟。
📝

内容提要

本文从.NET高级调试的角度分析了Windows中线程上下文切换的问题,通过观察线程栈和寄存器上下文,发现用户线程拥有两个线程栈,分别为用户态栈和内核态栈。调用线程执行Sleep(1)后,还会保存现场,保存在内核态线程栈的InitialStack ~ KernelStack之间。这个分析加深了对操作系统的理解。

🏷️

标签

➡️

继续阅读