GIL是一个全局解释器锁,保证同一时刻只有一个线程在运行。

如图,CPU1其实在不同的线程之间来回切换,比如,前两分钟在线程1,然后保存线程1跑到线程2,然后到线程3,等等。

Cpython解释器无法保证内存安全,多个线程的时候,可能出错,因而,引进了GIL,全局解释器锁,保证同一时刻只能有一个线程在运行。那它为什么也高效率呢?因为,在处理IO操作的时候,因为切换线程的时间短,可以忽略的程度,所以,可以高效率处理。就像图中,线程1可能是下载第一张图,线程2下载第二张图。

博客介绍了GIL(全局解释器锁),它保证同一时刻只有一个线程运行。Cpython解释器因无法保证内存安全,引入GIL。虽限制多线程并行,但处理IO操作时,因线程切换时间短可忽略,能实现高效率处理,如多线程下载图片。
GIL是一个全局解释器锁,保证同一时刻只有一个线程在运行。

如图,CPU1其实在不同的线程之间来回切换,比如,前两分钟在线程1,然后保存线程1跑到线程2,然后到线程3,等等。

Cpython解释器无法保证内存安全,多个线程的时候,可能出错,因而,引进了GIL,全局解释器锁,保证同一时刻只能有一个线程在运行。那它为什么也高效率呢?因为,在处理IO操作的时候,因为切换线程的时间短,可以忽略的程度,所以,可以高效率处理。就像图中,线程1可能是下载第一张图,线程2下载第二张图。

1524
1125
1546
1743
9477

被折叠的 条评论
为什么被折叠?