社区
进程/线程/DLL
帖子详情
我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么?
souhay
2003-01-03 11:28:12
我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么?
升的很慢。开了十个线程之后才上升4K的内存。
怎么解决。
急急急,一定给分。
...全文
210
20
打赏
收藏
我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么?
我在一个程序中,不断的开线程,内存一直升上去,降不下来(线程已经结束)为什么? 升的很慢。开了十个线程之后才上升4K的内存。 怎么解决。 急急急,一定给分。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
那怎么解决?谢谢了?
VC++Windows多
线程
实战图片编辑器
随着CPU的多核心的发展,不管是在哪个平台,多
线程
的编程
已经
是我们工程师必须掌握的技能,我们都知道单
线程
编程只能利用到cpu的
一个
核心,对于cpu性能有极大的浪费,并且在界面编程
中
对于给用户反馈都必须有及时性...
什么是
线程
?
线程
概念及方法详细讲解
在操作系统
中
,安装了多个
程序
,并发指的是在⼀段时间内宏观上有多个
程序
同时运⾏,这在单 CPU 系统
中
,每⼀时刻只能有⼀道
程序
执⾏,即微观上这些
程序
是分时的交替运⾏,只不过是给⼈的感觉是同时运⾏,那是因为分...
Java
中
多
线程
目录 一、概述 1、多
线程
和单
线程
...多
线程
即
一个
程序
中
有多个
线程
在同时执行,单
线程
和多
线程
: 单
线程
:若有多个任务,只有当上
一个
任务执行
结束
后,下
一个
任务才
开
始执行 多
线程
:若有...
关于压测
结束
后
程序
内存
使用率不下
降
的问题记录
JVM为什么不归还
内存
给操作系统?原来是我认识有误
关于
线程
的笔试面试题
组成:
一个
标准的
线程
由
线程
ID,当前指令指针(PC),寄存器集合和堆栈组成状态:由于
线程
之间的相互制约,致使
线程
在运行
中
呈现出间断性。
线程
也有就绪、阻塞和运行三种基本状态周期:新建 就绪 运行 阻塞 死亡 2....
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章