线程和进程之间的区别
- 进程是一个正在执行的程序实例。每个进程都有自己独立的
- 地址空间、全局变量、堆栈、和文件描述符等资源。
- 线程是进程中的一个执行单元。一个进程可以包含多个线程,
- 它们共享进程的地址空间和资源。
- 每个进程在独立的地址空间中运行,不会直接影响其他进程。
- 线程共享同一个进程的内存空间、全局变量和文件描述符。
- 进程切换需要保存和恢复大量的上下文信息,代价较高。
- 线程切换相对较轻量,因为线程共享进程的地址空间,只需要保存和恢复线程私有的数据。
线程的生命周期由进程控制,进程终止时,其所有线程也会终止。
| 特性 | 进程 | 线程 |
|---|---|---|
| 地址空间 | 独立 | 共享 |
| 内存开销 | 高 | 低 |
| 上下文切换 | 慢,开销大 | 快,开销小 |
| 通信 | 需要 IPC 机制,开销较大 | 共享内存,直接通信 |
| 创建销毁 | 开销大,较慢 | 开销小,较快 |
| 并发性 | 低 | 高 |
| 崩溃影响 | 一个进程崩溃不会影响其他进程 | 一个线程崩溃可能导致整个进程崩溃 |

浙公网安备 33010602011771号