从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章给大家分享的是有关Python中怎么切换GIL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联公司专业为企业提供珠海网站建设、珠海做网站、珠海网站设计、珠海网站制作等企业网站建设、网页设计与制作、珠海企业网站模板建站服务,十余年珠海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
1、通过判断指令计数器切换GIL
(1)python的解释器是在一个大的循环中逐个解析字节码指令;
(2)每次循环开始都会检查一下_Py_Ticker的值。
{ ... for (;;) ... if (--_Py_Ticker < 0) { ... _Py_Ticker = _Py_CheckInterval; ... if (interpreter_lock) { ... PyThread_release_lock(interpreter_lock); PyThread_acquire_lock(interpreter_lock, 1); } } ... switch (opcode) { case: ... } } }
2、IO阻塞之前切换GIL
Python允许在执行block型的system call之前允许其他线程执行(Py_BEGIN_ALLOW_THREADS),然后再重新尝试获取GIL(Py_END_ALLOW_THREADS)。
#define Py_BEGIN_ALLOW_THREADS { \ PyThreadState *_save; \ _save = PyEval_SaveThread();
感谢各位的阅读!关于“Python中怎么切换GIL”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图