Python中怎么切换GIL

这篇文章给大家分享的是有关Python中怎么切换GIL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司专业为企业提供珠海网站建设、珠海做网站、珠海网站设计、珠海网站制作等企业网站建设、网页设计与制作、珠海企业网站模板建站服务,十余年珠海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

python是什么意思

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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站题目:Python中怎么切换GIL
文章路径:http://bzwzjz.com/article/jpcjge.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站设计 成都品牌网站设计 成都响应式网站建设 定制网站制作 高端品牌网站建设 企业网站建设 手机网站建设套餐 成都网站建设流程 成都定制网站建设 成都网站制作 响应式网站建设 成都定制网站建设 手机网站设计 成都响应式网站建设 成都网站制作公司 营销型网站建设 自适应网站建设 响应式网站设计 网站建设公司 营销网站建设 重庆网站建设 成都网站制作