Advertisement

python进行全局解密操作

阅读量:

GIL的历史由来:

python中的GIL详解 - 可可的私房菜 - 博客园 (cnblogs.com)

总结:在多核CPU环境下,Python的多线程机制仅对IO密集型任务表现出积极效果;而一旦存在至少一个CPU密集型线程,由于GIL的存在,多线程的执行效率将显著降低。

个人理解:

GIL是CPython解释器所特有的机制(参考:python解释器

GIL本质上是Python在设计初期仅考虑单核处理器时引入的一种全局排他锁,其主要目的是确保多线程环境下数据的一致性与同步状态。从功能上看,它类似于一种防止多个线程同时执行机器码的互斥锁(Mutex),几乎使Python在多线程运行时等同于单线程程序。

由于GIL的存在,在两个CPU密集型线程同时运行的情况下,实际上任意时刻只有一个线程能够执行。这种情况下,两个CPU密集型线程实际上是交替进行的。
然而,在多个IO密集型任务中,当遇到IO阻塞时会自动释放锁,此时其他线程可以获取资源并进行处理,从而提高整体资源利用率。

全部评论 (0)

还没有任何评论哟~