Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个内核上运行python线程_Python_Multithreading_Python 3.4_Concurrent.futures - Fatal编程技术网

在多个内核上运行python线程

在多个内核上运行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只是一个帮助调度多线程工作的类。所有普通螺纹约束仍然适用

我知道Python2.7不允许在不同的内核上运行多个线程,您需要使用
多处理
模块来实现某种程度的并发性。我在看Python3.4中的
concurrent.futures
模块。使用
ThreadPoolExecutor
是否允许您在不同的进程上运行不同的线程,或者它仍然受到GIL约束的约束?如果没有,是否有一种方法可以使用Python 3.4在不同的处理器上运行线程


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

不。ThreadPoolExector只是一个帮助调度多线程工作的类。所有普通螺纹约束仍然适用


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

只是好奇-在什么情况下,多个进程是绝对不可行的?让我们假设您在一个内存非常少的嵌入式系统上工作。在那里生成多个进程不是一个好主意,对吗?尽管我同意Python也不应该成为首选语言。这只是我正在做的一个小实验。谢谢。这完美地回答了这个问题!!