C ++ - thread_local向量导致MinGW上的join()崩溃

时间:2018-04-24 18:26:56

标签: c++ c++11 concurrency mingw

#include <thread>
#include <vector>
using namespace std;

thread_local vector<int> v;

void foo(int n) 
{  
    for(int i=0 ; i<n ; i++)
        v.push_back(i);
}

int main() 
{
    vector<thread> thread_array;
    for(int i=0 ; i<4 ; i++)
        thread_array.push_back(thread(foo,100));
    for(int i=0 ; i<4 ; i++)
        thread_array.at(i).join();
    return 0;
}

这个程序在到达第二个for循环(加入的循环)后崩溃了,但并非总是如此。有时它退出很好,有时会崩溃。

导致这种情况的原因是什么?

0 个答案:

没有答案