Python中如何切换GIL?
- 更新时间:2021-07-06 09:42:41
- 编辑:麴俊健
为网友们分享了相关的编程文章,网友寇烨然根据主题投稿了本篇教程内容,涉及到Python相关内容,已被779网友关注,下面的电子资料对本篇知识点有更加详尽的解释。
参考资料
- 15天快速上手Python PDF 电子书 / 68.7 MB / 中岛省吾 推荐度:
- 《Python趣味编程入门》代码文件 配套资源 / 34.34 KB / (英)迈克·桑德斯(Mike Saund 推荐度:
- 《精通Python自然语言处理》配套资源 配套资源 / 222.83 KB / [印度] Deepti Chopra, 推荐度:
- 《青少年学Python》示例代码,习题解答 配套资源 / 1.5 MB / 阿里斯提德·波拉斯 推荐度:
- 虫术Python绝技 PDF 电子书 / 230.8 MB / 梁睿坤 推荐度:
正文内容
给大家整理一篇不错的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学习推荐:python教学
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
相关教程
-
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
这篇文章主要介绍了python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
发布时间:2019-09-09
-
Python是如何编译运行
这儿的表述实行是相对性于编译实行来讲的。大家都了解,应用C/C++这类的编译性語言撰写的程序,是必须从源代码转化成电子计算机应用的机器语言,历经连接器连接以后产生了二进制的可执行文件。运行该程序的情况下,就可以把二进制程序从电脑硬盘加载到运行内存中并运行。 可是针对Python来讲,python源代码不用编译成二进制代码,它能够立即从源码运行程序。在我们运行python文档程序的情况下,python解释器将源码变换为字节码,随后再由python解
发布时间:2020-05-13