当前位置: 首页 > 图灵资讯 > 行业资讯> Python中如何切换GIL?

Python中如何切换GIL?

发布时间:2024-08-21 22:23:52

1、GIL通过判断指令计数器切换到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、在切换GILIO阻塞之前,切换GIL

Python允许执行blocksystemm 在此之前,允许其他线程执行(Py_BEGIN_ALLOW_THREADS),然后再次尝试获得GIL(Py_END_ALLOW_THREADS)。

#definePy_BEGIN_ALLOW_THREADS{\
PyThreadState*_save;\
_save=PyEval_SaveThread();

以上是Python中切换GIL的方法,希望对大家有所帮助。更多Python学习推荐:python教学

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。

相关文章

如何让vim支持python3

如何让vim支持python3

2025-09-12
python2.7和3.6区别有哪些

python2.7和3.6区别有哪些

2025-09-12
python3有serial库吗

python3有serial库吗

2025-09-12
python中w、r表示什么意思

python中w、r表示什么意思

2025-09-12
python中如何把list变成字符串

python中如何把list变成字符串

2025-09-12
python命名空间是什么

python命名空间是什么

2025-09-12