我在C++中使用Portfolio任务实现了一个quicksort
带multi-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)