GIL
GIL即CPython解释器内置的一种解释器级别的互斥锁
由于垃圾回收线程的存在,避免线程之间数据修改的紊乱而对线程加‘锁’,确保进程内同一时刻只有一个线程在运作。这样就导致了python的多进程不能同时运行。
虽然GIL是自带的‘互斥锁’,但对于线程内不同的数据改动,还需要加入不同的锁来控制线程对数据的修改
当某个线程抢到GIL运行时,可能会遇到IO或者线程超时而导致CPU切换线程,但当前线程未执行完,就意味着GIL锁未释放,所以其他线程仍然无法运行,需要等着当前GIL释放
posted on 2021-01-08 17:59 Hello_Thanos 阅读(58) 评论(0) 编辑 收藏 举报