4

我想将我的单线程应用程序与工作线程数分开。只有 1 个问题 - 这个动作的表现如何?如果 GIL 阻止 python 同时执行超过 1 个线程,我会有任何利润吗?

另一点(从 c/c++ 的角度来看) - 据我所知,每个线程无论如何只能以独占方式执行,所以在低于 python 解释器的级别中,我有同样的限制。

摘要:python线程在部分任务切换中的效率会低于“本机”线程吗?

4

1 回答 1

6

不用担心 GIL。根据您的程序所做的事情的种类(计算与 I/O),您将具有不同的性能特征。如果您的程序是 I/O 绑定的,那么您可能根本不会注意到 GIL。

另一种方法是使用多处理模块,其中每个进程在其自己的 OS 进程中运行,并具有自己的 Python 运行时。通过这种方法,您可以充分利用多核,而且通常更安全,因为您不必担心同步访问共享内存。

于 2012-06-30T21:28:50.657 回答