在多处理器机器上使用Python:多进程还是无GIL解释器

1 投票
2 回答
807 浏览
提问于 2025-04-15 15:06

这个问题更像是风格上的讨论。对于那些需要大量计算的程序,如果能利用多个处理器核心会更有效,你通常会选择使用多进程模块,还是使用没有全局解释器锁(GIL)的线程?我对多进程库的使用不多,但除了CPython之外没有其他经验。我很好奇大家更倾向于哪种方法,如果是使用其他解释器的话,推荐用哪个。

2 个回答

1

看看Parallel Python(www.parallelpython.com)吧——我用它来很好地把工作分配到我那台四核电脑的各个处理器上。它甚至还支持集群哦!

3

我觉得在这里没有什么“风格”上的争论,无论是CPython 2.6里的multiprocessing,还是现在版本的Jython和IronPython里的threading,它们的编程方式和风格都非常相似。所以,我会根据一些非常实际的考虑来做选择,比如每种选择的性能如何(如果我的程序在CPU上非常吃紧,能从多个核心中获益,那性能显然是最重要的),我是否能利用一些仅限于CPython的库(比如numpy),或者其他仅限于JVM或.NET的东西,等等。

撰写回答