线程是一个独立的运行单元,每个进程内部有多个线程,每个线程可以各自同时执行指令。每个线程有自己独立的栈,但是与进程内的其他线程共享内存。对某些程序来说,其中有一个线程是特殊的,例如用户界面程序有一个UI 线程,控制台程序有一个main 线程。每个.NET 程序都有一个线程池,线程池维护着一定数量的工作线程,这些线程等待着执行分配下来的任务。线程池可以随时监测线程的数量。配置线程池的参数多达几十个,但是建议采用默认设置,线程池的默认设置是经过仔细调整的,适用于绝大多数现实中的应用场景。应用程序几乎不需要自行创建新的线程。你若要为COM interop 程序创建SAT 线程,就得创建线程,这是唯一需要线程的情况。线程是低级别的抽象,线程池是稍微高级一点的抽象,当代码段遵循线程池的规则运行时,线程池就会在需要时创建线程。本书介绍的技术抽象级别更高:并行和数据流的处理队列会根据情况遵循线程池运行。抽象级别更高,正确代码的编写就更容易。
参考书籍: C#并发编程经典实例