码迷,mamicode.com
首页 > 编程语言 > 详细

python GIL锁

时间:2017-10-16 13:40:46      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:全局   ima   计算   修改   gil   png   blog   logs   上下   

GIL锁 全局解释器锁

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

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

 

技术分享

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

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

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

python GIL锁

标签:全局   ima   计算   修改   gil   png   blog   logs   上下   

原文地址:http://www.cnblogs.com/qing-chen/p/7676366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!