python GIL锁

本文介绍了Python中的全局解释器锁(GIL),解释了它如何影响多线程程序的执行,并讨论了在多线程环境中共享数据时可能遇到的问题及解决方案。

GIL锁 全局解释器锁

无论cpu是多少核的,python同一时间执行的线程只有一个,但是给我们的感觉是并发的?因为python在不断的进行上下文的切换。

python的线程是调用操作系统的原生线程。因为调用的是c的接口。当Python要调用这个线程去执行任务的时候,cpu要知道上下文,所以要把上下文关系传给cpu。

 

要求是起4个线程,每起一个线程num+1 。因为每个线程都是独立并行执行的,所以他们得到的num都是等于1,那么返回的结果都是2。他们计算的时候也是并行的不是串行的。

可能每个线程分到不同的cpu内核上,但是同一时间只有一个在执行。避免数据出错,Python加一个全局锁,同一时间,只有一个线程能拿到这个数据。去修改。

因为在多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。

转载于:https://www.cnblogs.com/qing-chen/p/7676366.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值