进程和线程的区别
多进程 | 多线程 | 总结 | |
数据共享、同步 |
数据是分开的;同步简单;
共享复杂,需要用IPC
|
共享简单;同步复杂 | 各有优势 |
内存、CPU |
占用内存多,切换复杂;
CPU利用率低
|
占用内存少,切换简单;
CPU利用率高
|
线程占优 |
编程调试 | 编程简单,调试简单 | 编程复杂,调试复杂 | 进程占优 |
可靠性 | 进程间不会互相影响 | 一个线程挂掉将导致整个进程挂掉 | 进程占优 |
分布式 |
适应与多核、多机分布;
如果一台机器不够,扩展到多台机器容易;
|
适应于多核分布 | 进程占优 |
创建、销毁、切换 |
创建销毁复杂;切换复杂;速度慢
|
创建销毁简单,切换简单,速度快 | 线程占优 |