chenable1002 2021-08-26 15:14 采纳率: 0%
浏览 97

C++: 为什么我设计的多线程并没有比单线程快?求解答

要处理一个很大的数组(约有3千万个元素), 结果是返回一个大约4千万个元素的vector, 所以决定用多线程, 每个线程处理一段,为了提高效率, 没有使用锁, 而是将每个线程的结果存在一个零时vector里, 等全部线程完成后, 在把这几个临时的vector合并成一个大的vector, 即最终结果。

对比了 单线程, 2线程, 4线程和8线程, 感觉还是单线程最快, 为什么呀, 想不明白? 注: 所有的操作都是在内存中完成, 没有IO的操作。

  • 写回答

5条回答 默认 最新

  • baidu_30233079 2021-08-26 16:44
    关注

    1 根据cpu核个数来创建对应的线程
    2 最后vector合并很耗时的,感觉时间消耗在这了

    评论

报告相同问题?

问题事件

  • 修改了问题 8月26日
  • 创建了问题 8月26日