进程是资源分配的最小单位,线程是调度的最小单位。
进程包含线程,进程中可以有多条线程,也可以只有一条线程。
Python中由于解释器锁的存在不能利用多核,是指进程中的多线程不能利用多核,多线程包含在一个进程中的,只有进程才能利用多核,即一个进程一个核,里面的线程只能来回轮询利用一个核,不停的调用线程。
进程比线程快的原因是,为了利用核,一个进程中不停的在调度线程,不停的切换线程。时间大多浪费在了这里。
全局解释器锁,可以理解为在分配多核,绑定一个进程,维护进程中数据的一致性状态,避免数据还没有执行完毕或状态还在赋值中,就被其他进程拿去使用。
一台机器的多核是有限的,一般访问量较大的时候,利用线程池限制访问数量,轮询切换线程。这样一来,就避免了,突发的并发量导致程序崩溃掉。