计算:消耗CPU;代码执行,算数,for都是计算
io:不消耗CPU;打开文件,写入文件,网络操作都是io;
如果遇到io,该线程会释放CPU的执行权限,转而去执行别的线程
由于python有gill锁,开启多条线程,同一时刻只能有一条线程执行
计算密集型
开了多线程,实际上由于gill锁的存在,同一时刻只能有一个线程在执行,就会浪费多核优势
我们希望能够充分利用多核优势,让每个CPU都能利用起来,所以开启进程
因为gill锁只能锁住同一个进程下的线程
开启多个进程就能利用多核优势
io密集型
只要遇到io就会释放CPU的执行权限
进程内开了多个io线程,线程多半都在等待,开启多进程不能提高效率,反而消耗资源,所以使用多线程即可