我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么?

souhay 2003-01-03 11:28:12
我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么?
升的很慢。开了十个线程之后才上升4K的内存。

怎么解决。
急急急,一定给分。
...全文
210 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ml7575 2003-01-06
  • 打赏
  • 举报
回复
在线程内部自己结束时用afxendthread(0),也要用closehandle吗?
wuchuncai 2003-01-06
  • 打赏
  • 举报
回复
不要太为几K的内存泄漏而努力,如果你的程序运行了几天,内存也只涨几k,就不要管了,我经常在vc下没有发现内存泄漏,但用BoundChecker还说有泄漏,一跟踪往往是vc的类函数在泄漏,我就只好当没有看见
souhay 2003-01-06
  • 打赏
  • 举报
回复
刚开始也会增加,我开了10000多个线程之后,内存增加了。20K
是不是正常?
souhay 2003-01-06
  • 打赏
  • 举报
回复
我是这样打开的。

m_hTemp=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)threadfunction,this,0,&threadid);


CloseHandle(m_hTemp);
也用了CloseHandle
可是还会增加
aben456 2003-01-05
  • 打赏
  • 举报
回复
每一个出口都要释放申请过的内存
qrlvls 2003-01-03
  • 打赏
  • 举报
回复
如果你退出线程的方法都是ExitThread或者TerminateThread的话就可能有这个问题。
souhay 2003-01-03
  • 打赏
  • 举报
回复
那如果一直开着的话?
也没有问题?
wormie4evr 2003-01-03
  • 打赏
  • 举报
回复
确认调用了CloseHandle.
"开了十个线程之后才上升4K的内存。" 很正常, 任务管理器里看到的是RAM使用量, 虚拟内存被swap到RAM并不代表内存泄漏.
souhay 2003-01-03
  • 打赏
  • 举报
回复
你以上的问题都可以排除。
我就用一个线程函数,什么事都不做,它也是这样的,我想是关于开线程的问题。
kenwhale 2003-01-03
  • 打赏
  • 举报
回复
内存上升没什么不正常,但是如果现程结束还没降下来。看看有什么资源没有释放,又或者你在开线程的时候全局数据变化,比如练表更长了。。。等。
caoshu 2003-01-03
  • 打赏
  • 举报
回复
肯定是没有 CloseHandle
coolali 2003-01-03
  • 打赏
  • 举报
回复
The thread object remains in the system until the thread has terminated and all handles to it have been closed through a call to CloseHandle.

MSDN上是这么说的。
xpmao 2003-01-03
  • 打赏
  • 举报
回复
在线程结束后,需要将调用CloseHandle()函数释放线程句柄占用的资源。
souhay 2003-01-03
  • 打赏
  • 举报
回复
自己return的。
aben456 2003-01-03
  • 打赏
  • 举报
回复
你的线程是自己return的吗
还是强行终止的
souhay 2003-01-03
  • 打赏
  • 举报
回复
各位!!!!
CreateThread方法创建的。
lkcowboy 2003-01-03
  • 打赏
  • 举报
回复
你怎么结束线程的很重要
GerryLee 2003-01-03
  • 打赏
  • 举报
回复
创建线程当然会占用资源,内存上升是正常的。
创建线程后,在不需要使用线程句柄时应当马上CloseHandle。因为即使线程退出,如果其句柄的引用计数不为0,占用的资源不会释放。
不关闭句柄的线程只有在进程退出后系统才会释放所占用的资源。
everandforever 2003-01-03
  • 打赏
  • 举报
回复
你怎么结束线程的?
souhay 2003-01-03
  • 打赏
  • 举报
回复
那怎么解决?谢谢了?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧