进程与线程

进程,是操作系统进行资源分配的基本单位。 每个进程都有独立的资源,包括独立的内存空间、文件描述符、PCB块、堆、方法区等。

线程是CPU 调度的基本单位 可以理解成进程内部的一个执行单元。 一个进程可以包含多个线程,这些线程共享进程的资源,但有各自的栈、寄存器和程序计数器。

在切换的时候,进程切换需要切换页表 TLB 高速缓存,会比较慢,线程切换只需要切换栈和寄存器,会比较快。

进程之间因为隔离强,通信相对复杂,要借助 IPC。 线程之间因为共享内存,通信更方便,但也正因为共享资源,所以容易出现线程安全问题,比如竞态条件、可见性问题、数据不一致。