什么是进程?
进程就是运动中的程序:程序是死的,它只是一些指令和静态数据的集合。是操作系统让这些指令动了起来。
什么是线程?
线程是一种特殊的进程,轻量级的进程。
如果多个进程共享了地址空间、文件系统信息、打开的文件信息、信号处理信息,那么他们就是同属于一个进程的线程。
线程和进程一样,拥有一个task_struct结构体,这是进程控制块pcb(Process Contronl Block)的具体体现。
线程间共享代码区,数据区,堆区。因为共享了这部分资源,所以线程切换开销会比进程切换开销小。线程间通信会比进程间通信方便。
各线程有专属的栈区、程序计数器、栈指针以及函数运行使用的寄存器。
进程和线程的差别
操作系统以进程分配除CPU外的资源,以线程作为调度的最小单元(分配CPU资源)。