GIL
Python的GIL锁,全称是Global Interpreter Lock,是CPython解释器中的一种机制,用于确保同一时间只有一个线程可以执行Python字节码。GIL通过在解释器级别上进行互斥锁来实现,这意味着在任何给定的时间点上,只有一个线程可以执行Python字节码和操作Python对象。
作用
GIL通过限制同一时间只能有一个线程执行Python字节码,从而避免了多个线程同时操作同一个对象,就有可能导致数据不一致或程序崩溃
Limitation
首先,它限制了Python程序的并行性。在多核CPU上,使用GIL的Python程序只能在一个核上执行,无法充分利用多核的优势。
其次,GIL会增加Python程序的执行开销。由于每个线程都需要获取和释放GIL,因此会导致额外的上下文切换。