在多个内核上运行python线程
我知道Python2.7不允许在不同的内核上运行多个线程,您需要使用在多个内核上运行python线程,python,multithreading,python-3.4,concurrent.futures,Python,Multithreading,Python 3.4,Concurrent.futures,我知道Python2.7不允许在不同的内核上运行多个线程,您需要使用多处理模块来实现某种程度的并发性。我在看Python3.4中的concurrent.futures模块。使用ThreadPoolExecutor是否允许您在不同的进程上运行不同的线程,或者它仍然受到GIL约束的约束?如果没有,是否有一种方法可以使用Python 3.4在不同的处理器上运行线程 在我的用例中,使用多个进程是绝对不可行的。不。ThreadPoolExector只是一个帮助调度多线程工作的类。所有普通螺纹约束仍然适用
多处理
模块来实现某种程度的并发性。我在看Python3.4中的concurrent.futures
模块。使用ThreadPoolExecutor
是否允许您在不同的进程上运行不同的线程,或者它仍然受到GIL约束的约束?如果没有,是否有一种方法可以使用Python 3.4在不同的处理器上运行线程
在我的用例中,使用多个进程是绝对不可行的。不。ThreadPoolExector只是一个帮助调度多线程工作的类。所有普通螺纹约束仍然适用
为了消除一些混淆,线程将根据操作系统的选择在不同的处理器/内核上运行,它们只是不会同时运行。例外情况是,一些基于C的函数在执行不需要锁的操作时会临时释放GIL。只是好奇-在什么情况下,多个进程是绝对不可行的?让我们假设您在一个内存非常少的嵌入式系统上工作。在那里生成多个进程不是一个好主意,对吗?尽管我同意Python也不应该成为首选语言。这只是我正在做的一个小实验。谢谢。这完美地回答了这个问题!!