我对 C++ 上容器的内存分配有疑问。
查看多线程应用程序的伪代码(假设它是 c++ 语言)。我在 main 方法中声明了向量对象。然后我运行一个线程并将这个对象传递给线程。该线程在另一个处理器中运行。现在,我在向量中插入 100000 个元素。
typedef struct myType
{
int a;
int b;
}myType;
ThreadRoutine()
{
Run Thread in processor P;
insert 1000000 elements into myTypeObject
}
int main()
{
std::vector<myType> myTypeObject;
CALLTHREAD and pass myTypeObject
}
我想知道将为 100000 个元素分配内存的位置:-从主本身-从线程
我问这个的原因是,我想在不同的处理器中运行线程。我的机器是NUMA机器。因此,如果内存是从线程分配的,它将在线程的本地内存库中。但是如果内存是从主线程分配的,它将从主线程的本地内存库中分配。
根据我的直觉,我会说内存仅在线程中分配。请让我知道你的想法。