gpt4 book ai didi

c++ - 在多线程 C++ 程序中使用 std::vector 时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 08:14:05 27 4
gpt4 key购买 nike

简化:我正在为 realbasic 编写插件。我有两个带有自己线程的插件。在我开始使用 std::vector 之前一切都很好。我在两个插件中都有 vector<> 变量,我没有使用 vector 来使用相同的数据或在线程或其他任何东西之间共享数据。我的模型如下所示:

thread_1{
vector<> variable_1;
foreach{
variable_1.push_back(something);
}
}


thread_2{
vector<> variable_2;
foreach{
variable_2.push_back(something);
}
}

如果我不将 vector 声明为静态的,程序大多数时候会崩溃。但即使我将变量声明为静态,并使用排序或复制等算法,崩溃也会再次出现。似乎 vector 上的操作正在使用一些不是多线程安全的抽象类或其他东西。还是我做错了什么?谢谢。

我正在使用 windows 7 x64,visual studio 2008 pro,在 win32 版本上编译。

最佳答案

据我所知,分配器不是线程安全的。您应该以线程安全的方式分配 vector (保留)或使用线程安全的分配器。

关于c++ - 在多线程 C++ 程序中使用 std::vector 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com