Python多线程总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FisherWang_CN/article/details/80191502

0、有资源就用多进程,其次,IO密集用多线程也可以。

1、Python多线程是假的多线程。

2、全局解释器锁(GIL)

Python代码的执行由Python虚拟机(解释器)来控制。Python在设计之初就考虑要在主循环中,同时只有一个线程在执行,就像单CPU的系统中运行多个进程那样,内存中可以存放多个程序,但任意时刻,只有一个程序在CPU中运行。同样地,虽然Python解释器可以运行多个线程,只有一个线程在解释器中运行。

3、GIL运行过程

对Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同时只有一个线程在运行。在多线程环境中,Python虚拟机按照以下方式执行。

    1.设置GIL。

2.切换到一个线程去执行。

3.运行。

4.把线程设置为睡眠状态。

5.解锁GIL。

6.再次重复以上步骤。


4、待补




猜你喜欢

转载自blog.csdn.net/FisherWang_CN/article/details/80191502