设为首页 收藏本站
查看: 973|回复: 0

[经验分享] [python] GIL-python菜鸟的博客

[复制链接]

尚未签到

发表于 2018-8-4 14:13:01 | 显示全部楼层 |阅读模式
  http://www.dabeaz.com/python/UnderstandingGIL.pdf
  翻译水平不咋地,建议大家看原版英文,翻译只给自己参考,方便下次观看
Python Threads
  A.python线程是真实的系统线程
  如1.POSIX threads (pthreads)
  2.Windows threads
  B.被主机操作系统全权管理
  C.代表python解释器进程的被执行线程
什么是python GIL
  1.禁止并发执行
  2.包含全局解释器锁(GIL),GIL确保每次解释器只解释一个线程
  3.还有许多其他详情
线程的运行机制
DSC0000.jpg

  1.在GIL下,多任务之间合作执行的方式如图所示
  2.在一个线程执行时,会保持GIL锁,切换线程时会释放GIL
  3.GIL锁类似于IO锁(send,recv,write,read)
CPU限制任务
DSC0001.jpg

  1.CPU限制线程,不会通过执行IO限制,通过特殊方式
  2.使用CHECK方式每100"ticks"
  3.通过sys.setcheckinterval()改变CHECK的间隔
  ps:tick是python VM里的指令单元,与时间单位无关
  ps2:周期CHECK的内容:
  1.重置tick计数
  2.给主线程传送信号句柄
  3.释放GIL
  4.请求GIL
  5.原文给出了C代码来解释CHECK的方式,这里就不粘贴了
  后面的章节都是源码分析,就不翻译了,另外python3.2更新了GIL,不过并没有卵用,依然不能发挥多核优势,这篇文章主要介绍了python的GIL特性和原理,作为pyhton菜鸟学学就好,反正说多了我也不懂。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-546562-1-1.html 上篇帖子: python paramiko模块管理SSH 下篇帖子: python 循环
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表