1. 什么是CPU密集型计算、IO密集型计算?
- CPU密集型
- 也叫计算密集型,是指IO在很短的时间内可以完成,CPU需要大量的计算和处理,特点是CPU占用率相当高
- 例如 压缩解压缩,加密解密,正则表达式搜索
- 只在CPU中计算
IO密集型
联系
- 一个进程可以启动多个线程,一个线程可以启动多个协程
- 多线程
- 优点
- 相比进程,更轻量级,占用资源(每一个线程的运行都要包含自己的一些变量的存储,存储到内存区域,这是线程本身要消耗内存的)少
- 缺点
- 相比进程,多线程只能并发(CPU和IO可以并行执行)运行,不能利用多CPU(GIL 全局解释器锁)
- 相比协程,启动数目有限制,占用内存资源,有线程切换开销(一个线程可以启动很多协程,很多协程只使用了单个线程本身的资源,这个时候一个程序中可以启动大量的协程,本身占用资源比较少,)
- 适用
- IO密集型,同时运行的任务数目要求不多
- 优点
- 多进程
- 优点
- 可以使用多核CPU并行运算
- 缺点
- 相比线程,占用资源多,启动数目少
- 适用
- CPU密集型
- 优点
- 多协程

