小编rek*_*rut的帖子

在c ++中使用多线程进行快速排序

我在C++中使用Portfolio任务实现了一个quicksortmulti-thread方法的程序.

组合任务的方法是维护任务队列.每个免费线程从投资组合中挑选一个任务,执行它,如果需要,生成新的子任务并将它们放入投资组合中

但我不确定什么是对的!在我看来,在一个thread算法中,算法比两个或四个算法运行得更快thread.我能以某种方式搞砸同步吗?

谢谢任何人帮助我.

码:

#include <thread>
#include <chrono>
#include <mutex>
#include <condition_variable>
#include <iostream>
#include <queue>
#include <vector>
#include <set>
#include <ctime>
#include <algorithm>

using namespace std;

//print array
template <typename T>
void print(const vector<T> &arr)
{
    for (size_t i = 0; i < arr.size(); i++)
        cout << arr[i] << " ";
    cout << endl;
}

//queue tasks
queue< pair<int, int> > tasks;
//mutexs for set and queue task
mutex q_mutex, …
Run Code Online (Sandbox Code Playgroud)

c++ sorting multithreading synchronization quicksort

3
推荐指数
1
解决办法
3558
查看次数