一、进程与线程的简单地理解
**1.进程:**是操作系统分配资源的基本单位,每个进程里面有1个或多个线程,并且同一个进程下的线程是可以共享资源的.共享资源的方法,通过内存的寻址.
进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空间,至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。
2.线程:是程序执行的最小单位,也就是CPU调度,分配时间片。
线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
线程在切换的过程中需要保存当前线程Id、线程状态、堆栈、寄存器状态等信息。
其中寄存器主要包括SP PC EAX等寄存器,其主要功能如下:
SP:堆栈指针,指向当前栈的栈顶地址。
PC:程序计数器,存储下一条将要执行的指令。如果我们的程序对输入的数据没有校验的话,完全可以通过输出较长的数据,通过内存寻址穿过缓存容量,进入其他的数据区域,达到黑客入侵。
EAX:累加寄存器,用于加法乘法的缺省寄存器。
**并且还有指的注意的是:**每一个线程都有自己独立的内存空间,也就是TLS,(Thread Local Storage)
https://www.cnblogs.com/stli/archive/2010/11/03/1867852.html