Python 是解释型语言,使用解释器直接将源代码解析成二进度代码就可运行 (不用编译)。
C/C++ 等编译型编程语言,需要将源代码编译成二进制可执行代码后才可执行。
CPython 解释器本身的 GIL (全局解释器锁) 技术,会将应用程序牢牢绑定到单物理线程。
不管 CPU 有多少物理核心,多少物理线程,GIL 技术强制使用单物理线程。
在 GIL 技术下,若一个应用程序同时运行几个软线程,应用程序可能会频繁崩溃。
因为一个软线程未运行完成,另一个软线程再运行,将导致此 CPU 物理线程过于繁忙而崩溃。
将要同时运行的几个软线程,分别放到不现进程中。
将要同时运行的几个软线程,按类似协程的方式顺序运行。
当一个软线程在运行时,另一个就不能运行。
使所有软线程,尽可能异步运行。
使用 Jython、PyPy 等其它解释器实现。
使用 C C++ Cython 等其它编程语言,实现存在性能瓶颈的代码部分。
当采用 Cython 时,主要是使用 with gil 和 with nogil 编写 *.PYX 模块文件。
另请参阅:
版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。