python GIL锁
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python GIL锁相关的知识,希望对你有一定的参考价值。
GIL锁 全局解释器锁
无论cpu是多少核的,python同一时间执行的线程只有一个,但是给我们的感觉是并发的?因为python在不断的进行上下文的切换。
python的线程是调用操作系统的原生线程。因为调用的是c的接口。当Python要调用这个线程去执行任务的时候,cpu要知道上下文,所以要把上下文关系传给cpu。
要求是起4个线程,每起一个线程num+1 。因为每个线程都是独立并行执行的,所以他们得到的num都是等于1,那么返回的结果都是2。他们计算的时候也是并行的不是串行的。
可能每个线程分到不同的cpu内核上,但是同一时间只有一个在执行。避免数据出错,Python加一个全局锁,同一时间,只有一个线程能拿到这个数据。去修改。
因为在多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。
以上是关于python GIL锁的主要内容,如果未能解决你的问题,请参考以下文章