python如何切换GIL?
python中如何切换GIL?
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型的systemcall之前允许其他线程执行(Py_BEGIN_ALLOW_THREADS),然后再重新尝试获取GIL(Py_END_ALLOW_THREADS)。
#definePy_BEGIN_ALLOW_THREADS{\
PyThreadState*_save;\
_save=PyEval_SaveThread();
以上就是Python中切换GIL的方法,希望对大家有所帮助。更多Python学习推荐:请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
更多>>python如何创建UDP服务器和客户端?
python如何创建UDP服务器和客户端?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、创建UDP服务端的基本步骤(1)创建套接字并绑定...详情>>
2023-11-10 21:18:09python条件判断分为哪几类?
python中条件判断分为哪几类?python中条件判断分为单项判断,双向判断和多向判断。1、单项判断单项判断最基本的就是if。stone=6ifstone>=6:prin...详情>>
2023-11-10 19:15:56python多进程与多线程的简单区分
python多进程与多线程的简单区分1、区别多进程与多线程不同在于,多进程的每一个进程都有一份变量的拷贝,进程之间的操作互不影响。2、实例impo...详情>>
2023-11-10 16:04:13python-=是什么意思
python中-=是什么意思当我们看到python中类似数学的算数符号时,如果是有加减的出现,就可以明确它们是赋值运算符的一种。本篇所要带来的是-=,...详情>>
2023-11-10 14:36:01