为什么python明明是有GIL锁的单线程却可以在import thread后实现...

2024-12-17 02:34:45
推荐回答(1个)
回答1:

GIL是一种机制。在java或其他语言里线程是各执行各的,比如:一个线程执行“a+=1”,另一个线程执行“a+=1”,这两个是同时执行,它的执行顺序是读取a并加一,两个线程是同时执行这个流程。而python的GIL的执行顺序是第一个线程读取a,第二个线程读取a,第一个线程a加一,第二个线程a加一,第一个线程把a+1赋值到a,第二个线程把a+1赋值到a。所以GIL是同一时间只执行一个线程,而java或其他是同一时间执行多个。GIL是把一句语言(如:a+=1)分成原子操作顺序执行。