C ++简单线程示例

时间:2016-03-23 21:12:37

标签: c++ multithreading

您好我正在学习c ++&我是c +的新手,以下代码是我自己的基于其他语言的经验。然而,虽然对我来说它似乎没关系并且它确实编译,当我执行它时,它挂起 - 什么都不做。你能告诉我我做错了吗?

 .navbar-inverse .navbar-brand:focus {
  background-color : red; //Just add the properties you want here
}

1 个答案:

答案 0 :(得分:0)

你的代码试图让一些线程运行不是问题,这是测试用例:

std::vector<std::thread> threads;

for (int i = 0; i < 10; i++) {

    threads[i] = std::thread(child, i);         
    threads[i].join();

}
进入threads循环后

for为空,从而访问threads[0]或&gt; 0导致未定义的行为。

您应该使用push_back(或emplace_back)来实际向vector添加元素:

std::vector<std::thread> threads;

for (int i = 0; i < 10; i++) {

    threads.push_back(std::thread(child, i));         
    threads[i].join();
}