进程之间私有和共享的资源:
- 私有:地址空间、堆、全局变量、栈、寄存器
- 共享:代码段、公共数据、进程目录、进程ID
线程之间私有和共享的资源:
- 私有:线程栈、寄存器、程序寄存器
- 共享:堆、地址空间、全局变量、静态变量
总结对比:
对比维度 | 多进程 | 多线程 | 总结 |
数据共享、同步 | 需要IPC,数据共享复杂 数据是分开的,同步简单 |
共享进程数据,数据共享简单,但是同步复杂 | 五五开 |
内存、CPU | 占用内存多、切换复杂、利用率低 | 占用内存少,切换简单,cpu利用率高 | 线程牛X |
创建销毁、切换 | 复杂、慢 | 简单、快速 | 线程牛X |
编程调试 | 简单 | 复杂 | 进程牛X |
可靠性 | 进程之间不会相互影响 | 一个线程挂掉,整个进程gg | 进程牛X |
分布式 | 适用于多核、多机分布式,一台不够,扩展到多台 | 适用于多核 | 进程牛X |
优劣:
优 |