Python 中的多线程

问题描述 投票:0回答:2

我在网上读到现代芯片是多线程的(即每个核心都有几个线程)。然后我还阅读了 python 中的 GIL,它确保在任何时间点只有一个线程运行。

这是否意味着,即使我们拥有多线程核心,Python 编程也无法同时运行多个线程?或者有没有办法实现这个

python multithreading
2个回答
0
投票

操作系统能够同时处理多个进程。它为每个进程分配一个单独的内存空间,以便一个进程无法访问或写入其他进程的任何空间。另一方面,线程可以被认为是单个程序中的轻量级子进程。单个程序的线程共享分配给它的内存空间。

进程中的多个线程与主线程共享相同的数据空间,因此与单独的进程相比,可以更轻松地共享信息或相互通信。


0
投票

不幸的是,由于 GIL 的原因,不可能以与其他语言相同的方式实现多线程。您可以通过几种方式绕过这个问题。

“Multiprocessing”库生成一个新进程,使用 python 解释器的副本来执行。这允许您实现并发,但成本相当昂贵,而且不完全是多线程。

Cython,这是用 c 编写的 python 语言版本。它有一些不同的功能,其中之一是缺少 GIL。

Jython 这是一个Python,但用Java 编写。与 Cython 类似,它有一些不同的功能,其中之一是没有 GIL。

© www.soinside.com 2019 - 2024. All rights reserved.