《C# Threading Handbook》 系列翻译文章的分类汇总陆续贴出,欢迎大家持续关注~
[第1篇] 之一
多线程是一种将一个应用程序切分成“线程”并按步骤运行程序的其他部分的平台开发能力。在大多数编程语言中,你会有一个Main()方法,每行代码都会顺序执行,只有当前面的一行代码执行完,后面的代码才会执行。线程是操作系统常规多任务能力的一个组成部分并允许应用程序的一部分与其他对象的分别执行的一个特定对象,所以不在应用程序通用执行顺序范畴内。本篇主要介绍什么是线程,多任务。
[第2篇] 之二
进程也有一个使用计算机处理器的执行顺序。这个执行顺序就是线程。这个线程由CPU上正在使用的寄存器,线程使用的堆栈以及保存线程当前状态的存储器共同定义。本篇主要介绍单线程进程、时间片、多线程进程、中断以及线程优先级。
[第3篇]
当一个线程用完了分配给它的时间片以后,它不会停止而是再次排队等待。每个处理器在同一时间只能处理一个线程,所以当前线程不得不离开(被从处理器中移出)。然而,在线程跳出执行之前,它得将离开前的状态信息保存下来以便于再次执行。如果你的记性不错,这个功能就称作线程本地存储(TLS).一个线程的本地线程存储包含寄存器,堆栈指针,调度信息,内存中的地址空间以及其他正在使用的资源信息。TLS 中存储的众多寄存器中有一个程序计数器,它会告诉线程下次从哪条指令开始执行。
[第4篇]
由于.NET Framework 支持自由线程,所以自由线程在所有.NET 语言中都存在,包括C#和VB.NET. 在下一部分,我们将着重关注如何提供这种支持以及更多关于线程是如何做到的,而不再关注线程是什么。在这一部分的最后,你将理解什么是System.AppDomain 类以及它可以帮助你做什么?.NET runtime(运行时)如何监控线程?