C ++线程在for循环中导致大内存泄漏

时间:2017-05-27 18:21:02

标签: c++ multithreading c++11 memory memory-leaks

我一直在尝试在我的代码中使用线程,并且我发现在添加线程后存在内存泄漏。通常,代码占用400MB,但在我添加线程后,它增加到900MB并继续增加。

我制作了一个测试代码,以查看内存泄漏的来源,我发现它是for循环中的线程。经过短暂的等待,这个测试代码使用了超过100MB并且不断增长。 这段代码也与我正在处理的代码有点类似。

#include <iostream>
#include <thread>

void foo(){}

int main()
{
    for(;;){
        std::thread Ding(foo);
        Ding.join();
    }
}

我使用Windows 7和Code :: Blocks 16.01使用GNU GCC编译器版本4.9.2并使用任务管理器查看内存使用情况。

为什么此代码会不断增加其内存使用量,如何阻止它?

0 个答案:

没有答案