有和没有内存泄漏的线程

时间:2011-10-14 05:31:53

标签: c++ memory-leaks

我坚持使用c ++赋值,我应该创建一个简单的线程,另一个线程具有相同的逻辑,但也有内存泄漏。

这应该是一个简单的线程示例,即使没有做任何有用的事情。所以我想我的问题是,在c ++中最简单的线程是什么,如果我已经正确理解为了使它泄漏内存,我应该创建一个永不删除的变量? 此外,这个“泄漏”应该放在循环中还是以其他方式重复...因为对我来说,只留下一个未删除的变量似乎不是一个重大泄漏。

3 个答案:

答案 0 :(得分:0)

这对于泄漏来说已经足够了:

new char;

如果你想要更多,你可以把它放在一个循环中,但要小心 -

while( true ) {
    new char;
}

使大多数系统很快停止运行 - 它们开始交换并几乎无法使用。 IMO你应该坚持泄漏一些物品,除非你有其他特殊要求。

答案 1 :(得分:0)

你总是可以分配一个大对象(比如一个大缓冲区)而永远不会释放它;这样一个单独的分配将是一个重大的内存泄漏。

同样,如果你有一个被设计为某种经常被称为工作线程的线程,并且那里的内存泄漏很少,那么在你的程序运行时,你很容易通过“一千次切割的死亡”来解决内存问题“风格泄漏。

答案 2 :(得分:0)

有一个Boost线程库,这可能是C ++中线程最简单的选择。是的,内存泄漏只是一个未删除的变量。如果您不想要单变量内存泄漏,只需分配您认为必要的任何大小的数组。 new char[x],其中x是您想要的内存泄漏字节数