进程(process) 是一个正在运行的程序,拥有自己隔离的内存(地址空间);线程(thread) 是进程内部的一个执行单元。一个进程可以持有多个线程,这些线程共享该进程的内存——但每个进程与其他所有进程相互隔离。
各自拥有什么
text
PROCESS A PROCESS B
┌─────────────────────────────┐ ┌───────────────┐
│ address space (code/heap) │ │ address space │
│ file descriptors, PID │ │ (isolated) │
│ ┌────────┐ ┌────────┐ │ │ ┌────────┐ │
│ │thread 1│ │thread 2│ ... │ │ │thread 1│ │
│ │ stack │ │ stack │ │ │ │ stack │ │
│ │ regs/PC│ │ regs/PC│ │ │ └────────┘ │
│ └────────┘ └────────┘ │ └───────────────┘
│ ▲ shared heap, globals, fds│
└─────────────────────────────┘
