【发布时间】:2013-11-29 19:13:53
【问题描述】:
我为我的每个实验室实验编写了一个 Python 程序来进行数据分析(numpy、scipy)和绘图(matplotlib)。目前,我使用matplotlib.pyplot 状态机接口,这可能不适合多线程。因此,我将为此研究 OO 接口。
但是,由于 Python 中的全局解释器锁定,如果我将数据分析的独立部分放在一个线程中,它是否会变得更快?
【问题讨论】:
-
numpy 中的大多数数值计算在数字运算时都会释放 GIL。因此,如果您的数据分析由几个 numpy 函数调用组成,然后运行很长时间,那么是的,您可以使用多线程在计算进行时保持其他东西的活动,甚至将计算拆分为几个线程。
-
它是一个非交互式程序,所以“保持东西活着”不是问题。我想我会尝试一下并进行速度测试。
标签: multithreading python-3.x numpy matplotlib