动态更改pthread中的线程数

时间:2014-01-28 17:09:56

标签: multithreading dynamic parallel-processing pthreads

由于并行程序在不同的代码块中可能需要不同级别的并行性(例如,线程数),有没有办法动态地改变pthread中的线程数,以便在程序执行期间始终保持最佳并行性?

我们可能会将不必要的线程置于睡眠状态,但这样做会增加问题。首先,需要更改障碍以同步不同数量的线程。其次,一些并行程序在初始化期间将数据分配给各个线程。还需要使用动态线程编号更改数据分发。

有任何想法或建议吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

我能想到的最好的方法就是始终尝试使用池线程或应用程序生命周期线程。

那些必须在应用程序生命周期内运行的任务才会启动一次,永远不会终止。

所有其他任务排队等候线程轮询,这些线程足够大,以至于当核心空闲时,任何任务都不可能排队。