有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合

有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合急... 有三个集合,分表存放字10000个无序的符串,启动三个线程,一个线程处理一个集合的数据,将三个结合急 展开
 我来答
华梦瞬逝
2018-07-21 · TA获得超过612个赞
知道小有建树答主
回答量:184
采纳率:75%
帮助的人:103万
展开全部

请在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;
}
学不安道
2018-07-21 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:209
采纳率:75%
帮助的人:39.2万
展开全部
不清楚,插个眼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式