GIL全局解释器锁

并发:进行交替处理多件事情。

并行:多个cpu同时处理多个事,只在多核上能实现。

 GIL是全局解析器锁,保证同一时刻只有一个线程可以使用cpu,让我们的多线程没办法真正实现并行。

在一个进程中只有一个GIL锁,那个线程拿到GIL就可以使用cpu

多个进程有多个GIL锁

 什么时候会释放GIL锁?

1 、遇到像 i/o操作这种会有时间空闲造成cpu闲置的情况会释放GIL。

 2 、会有一个专门ticks进行计数,一旦ticks数值达到100,这个时候释放GIL锁,线程之间开始竞争GIL锁(说明:ticks这个数值可以进行设置来延长或者缩减获得GIL锁的线程使用cpu的时间)。

互斥锁和GIL锁的关系 

GIL锁  : 保证同一时刻只有一个线程能使用到cpu。

互斥锁 : 多线程时,保证修改共享数据时有序的修改,不会产生数据修改混乱。

 

 

你可能感兴趣的:(python)