导语:
本文主要介绍了关于Python中如何切换GIL?的相关知识,包括在设置中切换输入设备,以及运行中如何从D档切换到L档这些编程知识,希望对大家有参考作用。
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允许其他线程在执行块型系统调用之前执行(Py_BEGIN_ALLOW_THREADS),然后重试获取GIL(Py_END_ALLOW_THREADS)。
#define Py_BEGIN_ALLOW_THREADS { \
PyThreadState *_save; \
_save = PyEval_SaveThread();
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何使用列表理解11/12
- ♥ 如何在python中打开文件10/31
- ♥ windows系统下如何下载python10/02
- ♥ 如何在 anaconda 中安装 ipython09/24
- ♥ python ndarray数组对象有什么特点10/07
- ♥ python中的functools模块是什么?01/05
内容反馈