进程和线程
进程与线程的区别
基本概念
进程:资源分配的基本单位 一个软件就是一个进程
线程:cpu调度的基本单位 一个进程可以有多个线程在运行
相同
进程和线程在Linux中都是由task_struct结构体定义的
不同
并发性
- 进程切换效率低
需要上下文切换(cpu寄存器、程序计数器、用户空间信息、内核空间pcb) - 线程切换效率高
需要上下文切换(cpu寄存器、程序计数器)
内存
- 进程有独立的虚拟地址空间。
- 线程没有独立的虚拟地址空间,共享进程的内存,有栈、程序计数器、本地存储等独立空间。
所属关系
- 线程必须依靠进程才能运行
- 进程包含多个线程
健壮性
- 进程的健壮性更好
一个进程出错不会影响到其他进程(进程间是相对独立的)
一个线程出错整个进程都会出错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Derek's Blog!

