Python GIL问题
GIL :全局解释器,每个进程只能一个cpu
因为有GIL ,所以同一时刻,只有一个线程被cpu执行
GIL是在线程上加的锁。
一个进程跑多个线程 python是不可能的
解决方法:
1.多个任务放到多个进程处理,muiltprocess模块
但是进程开销大
2.多进程+协程,最好的解决的方法
为了解决同一时刻只有一个cpu被利用的情况可以采用两种解决办法:1.将多线程变为多进程,但是进程开销大,同时进程之间的通信不方便,所以一般不合适。
2.利用多多进程+协程处理,当前主要的处理方法
任务: io密集型 python多线程很合适,可以采多线程+协程进行处理
计算密集型 python不适合。