在多个核心上运行python线程

时间:2014-06-24 22:29:10

标签: python multithreading python-3.4 concurrent.futures

我知道Python 2.7不允许在不同的内核上运行多个线程,并且需要使用multiprocessing模块才能实现某种程度的并发。我在查看Python 3.4中的concurrent.futures模块。使用ThreadPoolExecutor是否允许您在不同进程上运行不同的线程,还是仍然受GIL约束约束?如果没有,有没有办法使用Python 3.4在不同的处理器上运行线程?

对于我的用例,使用多个进程绝对不可行。

1 个答案:

答案 0 :(得分:3)

没有。 ThreadPoolExector只是一个帮助调度多线程工作的类。所有正常的线程约束仍然适用。

为了消除一些混乱,线程将在操作系统选择的不同处理器/内核上运行,它们不会同时运行。例外情况是,某些基于C的函数会在执行不需要锁定的操作时临时释放GIL。