有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合
有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合急...
有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合急
展开
2个回答
展开全部
请在C++11以上编译
PS:关于三个bool变量,因为进程使用的次数少,所以可以直接循环,不然还要使用互斥。
#include <string> //字符串
#include <vector> //向量(动态数组)
#include <thread> //进程库
#include <algorithm> //排序函数
using namespace std;
vector <string> a, b, c;
bool _a = true, _b = true, _c = true; //这些变量用来检测对应数组是否结束
int main() {
//创造进程
thread ta([](){ sort(a.begin(), a.end()); _a = false; });
thread tb([](){ sort(b.begin(), b.end()); _b = false; });
thread tc([](){ sort(c.begin(), c.end()); _c = false; });
//将进程分离运行,此时进程不受程序控制,需要变量检测
ta.detach();
tb.detach();
tc.detach();
while(_a || _b || _c); //循环判断三个进程是否结束
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询