GIL
-
概念:⁃GIL ( Global Interpreter Lock ) 全局解释器锁。
⁃GIL 不是 Python 语言的特性,是CPython中的一个概念。
⁃Python 解释器也是一个应用程序 -
作用:⁃线程互斥锁是 Python 代码层面的锁,解决 Python 程序中多线程共享资源的问题
⁃GIL 是 Python 解释层面的锁,解决解释器中多个线程的竞争资源问题。 -
对程序的影响:⁃由于 GIL 的存在, Python程序中同一时刻有且只有一个线程会执行。
⁃Python 中的多线程由于 GIL 锁的存在无法利用多核 CPU
⁃Python 中的多线程不适合计算密集型的程序。
⁃GIL 锁在遇到IO等待时,会释放 GIL 锁,可以提高Python中IO密集型程序的效率 -
影响的解决办法:⁃如果程序需要大量的计算,利用多核CPU资源,可以使用多进程来解决