小编use*_*087的帖子

更改向量时如何保持线程不打结?由 小码哥发布于

该程序将崩溃,因为线程缠结......一个可能正在推动,而另一个正在尝试擦除。

我怎样才能做到这一点?

#include <thread>
#include <vector>

using namespace std;

vector<int> v_test;

void push()
{
    v_test.push_back(0);
}

void erase()
{
    if (v_test.size() > 0)
    {
        v_test.erase(v_test.begin());
    }
}

int main()
{
    thread w0(push);
    thread w1(erase);

    while (true) { Sleep(1000); }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading vector thread-safety

0
推荐指数
1
解决办法
73
查看次数

标签 统计

c++ ×1

multithreading ×1

thread-safety ×1

vector ×1