进程与线程的核心区别
总结:进程是资源分配的最小单位,线程是 CPU 调度的最小单位。
1. 核心定义
- 进程:程序的一次执行过程,拥有独立的内存空间、文件描述符等资源
- 线程:进程内部的执行路径,共享所属进程的资源
2. 关键区别对比
| 对比项 | 进程 | 线程 |
|---|---|---|
| 资源 | 独立内存、独立资源 | 共享进程内存与资源 |
| 开销 | 创建 / 销毁 / 切换开销大 | 轻量级,开销小 |
| 通信 | 复杂(管道、消息队列、socket 等) | 简单,直接读写共享数据 |
| 稳定性 | 一个崩溃不影响其他进程 | 一个线程崩溃,整个进程都会崩 |
| 调度 | 系统资源分配单位 | CPU 执行调度单位 |
| 独立性 | 高度独立 | 依赖进程,不能独立存在 |
3. 通俗理解
- 进程 = 一个工厂
- 线程 = 工厂里的工人
- 工厂有独立场地、设备(进程资源)
- 工人共用工厂资源,但各自干活(线程共享资源)
4. 典型应用场景
- 多进程:浏览器多标签、手机 App 独立进程(稳定性优先)
- 多线程:后台下载、并发计算(效率优先)