Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 1016 Bytes

进程和线程的区别.md

File metadata and controls

20 lines (16 loc) · 1016 Bytes

进程和线程的区别

进程: PROCESS 线程: THREAD

1. 根本区别 
进程是计算机资源分配的最小单位, 线程是程序执行的最小单位

2. 开销
进程有独立的地址空间, 每启动一个进程, 系统都会为进程分配地址空间, 建立数据表来维护代码段、堆栈段和数据段, 这种开销非常昂贵
线程没有地址空间, 但是线程共享所属进程的地址空间

同一进程中的多个线程共享所属进程的代码段(代码和常量)、数据段(全局变量和静态变量)、扩展段(堆存储),
但是每个线程拥有自己的栈段(又叫运行时段, 用于存放所有局部变量和临时变量)、寄存器的内容

线程是一种轻量级的进程, 与进程相比, 线程的开销更小

3. 健壮性
因为不同进程有自己独立的地址空间, 所以一个进程死掉, 不会对其他进程造成影响
而一个线程死掉, 线程所属的整个进程也会死掉
所以多进程方式比多线程方式更加健壮