首页 > 解决方案 > cpp中std::vector的并行排序

问题描述

概述

我正在编写用于std::vector<std::string>在多线程中进行排序的代码。所以我使用了 mergeSort 的概念,我将向量分成块,对块进行排序,然后合并它。所有的排序和合并都是在基向量上完成的。在此过程中未完成任何任务

我并行排序,一旦排序完成,我并行合并向量。std::sort与单线程相比,如果我的向量大小大于 10,000,这给了我运行时的巨大改进

现在,当我在tbb::parallel_sort大小 > 10000 的同一向量上运行时,我能够实现相同的运行时间。但是当我运行时__gnu_parallel::sort,它快了 2 倍。

问题

__gnu_parallel::sort与以前的方法相比,有什么额外的?

标签: c++multithreadingsortingtbb

解决方案


推荐阅读