有或没有内存泄漏的线程
Thread with and without a memory leak
我被困在一个c++赋值,我应该做一个简单的线程和另一个线程,具有相同的逻辑,但也有内存泄漏。
这应该只是一个简单的线程示例,甚至本身没有做任何有用的事情。所以我想我的问题是,什么是最简单的线程,可以在c++中,如果我已经正确地理解,使它泄漏内存,我应该做一个变量,那永远不会被删除?此外,这种"泄漏"是否应该置于循环中或以其他方式重复……因为对我来说,只留下一个未删除的变量似乎不像是一个大泄漏。
这对于泄漏来说已经足够了:
new char;
如果你想要更多,你可以把它放在一个循环中,但是要小心-
while( true ) {
new char;
}
使大多数系统很快停止—它们开始交换并且几乎无法使用。在我看来,你应该坚持泄漏几个对象,除非你有其他特定的需求。
你总是可以分配一个大的对象(比如一个大的缓冲区)而不释放它;这样一次分配就会造成严重的内存泄漏。
同样,如果你有一个线程被设计成某种经常被调用的工作线程,并且在那里有一个小的内存泄漏,那么在你的程序运行时,你很容易遇到内存问题,因为"千次切割死亡"类型的泄漏。
有一个Boost Thread库,这可能是c++中线程最简单的选择。是的,内存泄漏只是一个未删除的变量。如果您不希望出现单变量内存泄漏,只需分配一个您认为必要的任意大小的数组。new char[x]
,其中x是您希望泄漏的内存字节数
相关文章:
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么使用 make_unique<> 将函数传递给线程会导致 Valgrind 中的内存泄漏?
- 如何在<N>不发生内存泄漏的情况下同时(线程安全)填充 c++11 std::map<std::string,std::bitset*>?
- 线程管理内存泄漏
- 将函数移动到线程(使用 lambda)时内存泄漏
- win32 标准::线程泄漏内存
- C++-SQLite3在多线程环境中泄漏句柄
- 动态分配的工作线程在几分钟后泄漏,尽管它不应该
- 通过JNI从本机线程回调时Java线程泄漏
- 使用Eigen和boost::线程的C++中出现奇怪的内存泄漏
- 两个线程之间是否存在任何内存泄漏(缓冲、清空)
- Linux 上的多线程C++应用程序中的内存泄漏
- 为多线程环境实现单例的内存泄漏
- 内存/线程泄漏,使用 WinSock2 开发简单的 HTTP 服务器
- QTcpServer 中的内存泄漏,在不同线程中参与连接
- 提升线程池内存泄漏
- Qt 4.7:TCP线程,数据传输导致内存泄漏
- C++线程构造函数,使用new(object)会造成内存泄漏
- C++提升线程,是以下合法内存泄漏