进程与线程:

进程:

  进程是操作系统资源分配的单位,其中存放dll,代码,堆,栈

线程:

  调度单位

多线程优点:

  1.提高响应能力:GUI程序,主线程操作UI,耗时操作放在工作线程中

  2.提高程序性能

线程有哪些开销:

  空间上:

    1.数据结构上

      C#:Thread 类

      CLR: Thread (C++)

      OS: Thread 

    2.线程栈

      一个线程默认最大栈空间1M,线程越多,栈空间越大

    3.teb开销  teb:线程环境块

          TLS(线程本地存储)

  时间上:

    1. dllmain:非托管dll 上面有 dllmain,当线程start和exit的时候会通知这些dll做一些资源清理什么的

    2.上下文切换:CPU和线程的交互,大约30ms一次,thread暂停时保存数据,恢复时恢复数据.

          如果上下文切换非常频繁,会造成cpu爆高.