首页IT科技python2改成python3(Python中如何切换GIL?)

python2改成python3(Python中如何切换GIL?)

时间2025-09-07 10:16:18分类IT科技浏览8470
导读:1、通过判断指令计数器切换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型的system call之前允许其他线程执行(Py_BEGIN_ALLOW_THREADS)                  ,然后再重新尝试获取GIL(Py_END_ALLOW_THREADS)                           。

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

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
seo网站关键词优化工具(掌握SEO关键词优化技巧,提升网站排名) 新的seo网站优化排名 排名(seo网站排名优化工具)