详情点我跳转
关注公众号“轻松学编程”了解更多。
多线程
在介绍Python中的线程之前,先明确一个问题,Python中的多线程是假的多线程!
为什么这么说,我们先明确一个概念,全局解释器锁(GIL)
一、什么是GIL
Python代码的执行由Python虚拟机(解释器)来控制,同时只有一个线程在执行。对Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同时只有一个线程在运行。
二、为什么要用GIL
为了线程间数据的一致性和状态同步的完整性,(例如:线程2需要线程1执行完成的结果,然而线程2又比线程1执行时间短,线程2执行完成,线程1仍然还在执行,这就是数据的同步性)
三、GIL的影响
只有一个线程在运行,无法使用多核。
-
在多线程环境中,Python虚拟机按照以下方式执行。
1.设置GIL。<