突破GIL

IMOOC,讲师链接https://www.imooc.com/t/5683545

如何实现单进程多线程真正的并行

1. 使用其他解释器
2. 用C重写python线程创建的过程,就可以实现单进程多线程真正达到并行

反之目前来看,Cpython的GIL仍将存在。

如何实现并行

咱们现在应该都是多核CPU

1.多进程
2.ctypes调用c的可执行文件
3.其他解释器

我刚刚看到一个库lupa,说是即时编译,这和PyPy类似。但是我不清楚这个能不能做到并行。

双核CPU进行三种对比

老师在虚拟机中的Ubuntu系统下运行三种情形:
单进程多线程
多进程
调用c语言写的可执行文件

具体说一下第三个:
编译好c语言后可得到可执行文件,通过ctypes运行该可执行文件。可执行文件没有GIL。

结果:
第一种只有一个内核在被占用,第二三种都是两个内核都被占用。

 

还需了解:主进程、子进程,主线程、子线程、协程

上一篇:python多线程GIL的问题记录


下一篇:Python中的GIL全局解释器锁