1. 概念
- 进程是资源分配的最小单位,线程是CPU调度的最小单位
- 一个应用程序至少包括1个进程,而1个进程包括1个或多个线程,线程的尺度更小
- 每个进程在执行过程中拥有独立的内存单元,而一个进程的多个线程在执行过程中共享内存
线程进程区别
多进程 | 多线程 |
---|---|
数据是分开的:共享复杂,需要用IPC;同步简单 | 多线程共享进程数据:共享简单;同步复杂 |
占用内存多,切换复杂,CPU利用率低 | 占用内存少,切换简单,CPU利用率高 |
创建、销毁、切换复杂,速度慢 | 创建、销毁、切换简单,速度快 |
编程简单,调试简单 | 编程复杂,调试复杂 |
进程间不会相互影响 | 一个线程挂掉将导致整个进程挂掉 |
适应于多核、多机分布 ;如果一台机器不够,扩展到多台机器比较简单 | 适应于多核分布 |
2. python多进程编程
python的多进程编程主要依靠multiprocess
模块
//todo…