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。
结果:
第一种只有一个内核在被占用,第二三种都是两个内核都被占用。
还需了解:主进程、子进程,主线程、子线程、协程