在C ++中,我想创建一个具有以下结构的算法:
使用pthreads,我可以想出两种解决问题的方法:
当性能很重要时,为解决方案1创建新线程需要多少开销。我应该选择解决方案1还是解决方案2?
答案 0 :(得分:1)
并行框架,例如OpenMP循环线程。这称为线程池,您可以在网站上找到有关这些信息的信息。这是一篇相关的帖子:Thread Pool vs Thread Spawning
如果您真的关心性能,找到适合您应用的最佳方法是尝试这两种方法并进行测量。
通常,如果您的处理任务很昂贵,并且如果您只生成新线程,代码更容易理解,那么就这样做。
只是稍微为论点着色,请查看我在前几天使用实验回答的帖子:Why are 50 threads faster than 4?