Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Multithreading 是否可以在程序执行期间更改线程数_Multithreading_Openmp - Fatal编程技术网

Multithreading 是否可以在程序执行期间更改线程数

Multithreading 是否可以在程序执行期间更改线程数,multithreading,openmp,Multithreading,Openmp,我运行的openMP程序很少。是否可以在程序执行期间更改线程数。例如,如果一个程序使用默认的线程数执行需要70秒,我可以更改这个数,比如说30秒后。您总是可以创建一个新线程。您应该问自己一个更好的问题:多线程是否对您有利。请记住,仅仅创建新线程不会加快程序的速度,在许多情况下,实际上可能弊大于利(竞争条件、死锁等)。在开始之前,请确保您了解线程是如何工作的,而从您的问题判断,您并不了解。穿线是一项很有男子气概的任务,它会让你的头发长在胸前,但会让你的头发从头上脱落 是的,您当然可以通过(比如)迭

我运行的openMP程序很少。是否可以在程序执行期间更改线程数。例如,如果一个程序使用默认的线程数执行需要70秒,我可以更改这个数,比如说30秒后。

您总是可以创建一个新线程。您应该问自己一个更好的问题:多线程是否对您有利。请记住,仅仅创建新线程不会加快程序的速度,在许多情况下,实际上可能弊大于利(竞争条件、死锁等)。在开始之前,请确保您了解线程是如何工作的,而从您的问题判断,您并不了解。穿线是一项很有男子气概的任务,它会让你的头发长在胸前,但会让你的头发从头上脱落


是的,您当然可以通过(比如)迭代循环每次动态更改线程数,并使用该值加上计时测量值来自适应地选择正在使用的内核数