somepeople

GIL

GIL即CPython解释器内置的一种解释器级别的互斥锁

由于垃圾回收线程的存在,避免线程之间数据修改的紊乱而对线程加‘锁’,确保进程内同一时刻只有一个线程在运作。这样就导致了python的多进程不能同时运行。

虽然GIL是自带的‘互斥锁’,但对于线程内不同的数据改动,还需要加入不同的锁来控制线程对数据的修改

当某个线程抢到GIL运行时,可能会遇到IO或者线程超时而导致CPU切换线程,但当前线程未执行完,就意味着GIL锁未释放,所以其他线程仍然无法运行,需要等着当前GIL释放

posted on 2021-01-08 17:59  Hello_Thanos  阅读(58)  评论(0编辑  收藏  举报

导航