1、什么是GIL(这是Cpython解释器)
GIL本质就是一把互斥锁,那既然是互斥锁,原理都一样,都是让多个并发线程同一时间只能有一个执行。
即:有了GIL的存在,同一进程内多个线程同一时刻只能有一个在运行,意味着在Cpython中一个进程下的多个
线程无法实现并行=====>意味着无法利用多核优势但不影响并发的实现
2、为何要有GIL
3、如何用
from threading import Thread,Lock import time mutex=Lock() #生成锁赋给变量 n=100 def task(): global n #声明n就表示n为100 mutex.acquire() temp=n time.sleep(0.1) n=temp-1 mutex.release() if __name__ == '__main__': t_l=[] start_time=time.time() for i in range(3): t=Thread(target=task) t_l.append(t) t.start() for t in t_l:#让他变成串行 t.join() stop_time=time.time() print(n) print(stop_time-start_time)