社区
进程/线程/DLL
帖子详情
一个关于线程的非常细微的问题,我有点糊涂了,进来看看吧:)
nbb01
2003-03-23 04:28:53
用API CreateThread()创建线程,返回线程的HANDLE,那么,在线程正常结束后,是否应该调用CloseHandle()关闭这个句柄?因为我的程序,要频繁地创建、结束大量的线程,担心这里有泄露。
...全文
97
10
打赏
收藏
一个关于线程的非常细微的问题,我有点糊涂了,进来看看吧:)
用API CreateThread()创建线程,返回线程的HANDLE,那么,在线程正常结束后,是否应该调用CloseHandle()关闭这个句柄?因为我的程序,要频繁地创建、结束大量的线程,担心这里有泄露。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nbb01
2003-03-23
打赏
举报
回复
谢谢winay_dd(winay)指点,正在考虑用线程池:)
winay_dd
2003-03-23
打赏
举报
回复
我觉得有必要关闭。closehandle()和handl所指的内核对象直接关联的。调用一次closehandle,系统会对内核对象上的引用计数器减一,如果该内核对象引用为0了,则系统才会把内核对象销毁。所以,除非你整个进程结束了,否则不用closehandle好的话,内核对象还是存在的。
对于你要频繁启动线程的情况,可以考虑设计一个线程池。从里面取线程。频繁的启动线程确实对性能有影响,也会导致不稳定。
alphapaopao
2003-03-23
打赏
举报
回复
又学了一招
nbb01
2003-03-23
打赏
举报
回复
星级大将,功力果然非同寻常,
everandforever(Forever)、webber84(***闭关修炼中***),佩服佩服,对系统理解的很深。
先结贴了,不欠隔夜之帐,呵呵:)
nbb01
2003-03-23
打赏
举报
回复
呵呵,谢谢各位,我也觉得应该CloseHandle,就是看到许多例子,都是只CreateThread,
却从不做CloseHandle,因此担心这样做,反而有问题:)
everandforever(Forever):请问你贴的那段,出处在哪里?在MSDN的哪个章节?我仔细
看看。准备结贴了:)
webber84
2003-03-23
打赏
举报
回复
操作系统用一个线程内核对象来管理线程,一个句柄就标识了一个内核对象,你只有通过这个句柄才能访问线程。内核对象有一个引用计数,表明当前有多少句柄关联到这个内核对象,当该计数为0时,系统就会销毁这个对象。CloseHandle的作用就是关闭一个句柄,使用线程内核对象的引用计数减一。注意只是引用计数减一,不会关闭你创建的线程。所以,如果你创建了一个线程并且不会再去访问它,就可以立即调用CloseHandle,这不会对线程运行有任何影响;当线程运行完毕以后,你应该调用CloseHandle(如果以前没有调用过的话),否则线程内核对象的引用计数仍大于0,系统仍然会保留它(即使你已经不会再去访问它了),这显示会造成一些内存的浪费。
everandforever
2003-03-23
打赏
举报
回复
需要.
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.
richard_hu
2003-03-23
打赏
举报
回复
HANDLE本身就是一个指针变量,就象整形int的变量一样
一个变量总可以继续使用
但由于这是个指针,并且里面涉及到了资源的分配问题
所以建议还是要用closehandle把他关掉,把资源释放掉,保险!
SeekTruth
2003-03-23
打赏
举报
回复
要看句柄是否要在以后使用吧。
alphapaopao
2003-03-23
打赏
举报
回复
不需要close handle操作。放心。
============================================================================
您想非常省事的写 C++ 程序文档吗?
DocWizard 略作小改动,版本号 1.0.0.2 欢迎使用
欢迎下载,提出改进建议 http://www.betajin.com/alphasun/index.htm
您在写文档时是否被数量众多的类成员函数所烦恼?是否为了美观的
版面、格式而困扰?是否为了做成CHM而不得不进行大量的手工操作?
本软件可以帮助您
● 生成C++的类的HTML格式的文档,条分缕析,版面美观而朴实。
并且可以集成到 HTML Workshop 中,和其他类一起形成CHM。
● 而且可以生成 content of topic (.hhc) 文件以及生成
index (.hhk) 文件。避免您手工编辑生成文件的麻烦。要知
道在 HTML Workshop 中编辑生成这两种文件是非常麻烦的。
● 在马上就要推出的新版本中,将提供二次开发接口,您将可以
操纵文档生成过程,形成更符合您要求的文档。当然源代码的
解析本软件已经帮您完成了,您所要做的仅仅是生成您所关心
的“部分”文档。
欢迎下载,提出改进建议 http://www.betajin.com/alphasun/index.htm
2025开源创新:双分支特征提取模块在高光谱图像分类中的即插即用实践
本文详细解析单例模式与适配器模式。单例模式确保类仅有
一个
实例,提供全局访问点,在资源控制等方面有优势,但存在扩展性差等
问题
。适配器模式解决旧类与新接口不兼容
问题
,有类适配器和对象适配器两种实现方式。还介绍了两种模式的结合使用及选择建议。
Python绝技:运用Python成为顶级黑客>>>>笔记及心得体会[1]
本文是作者学习《Python绝技》的笔记,分享了使用Python进行渗透测试的心得体会,包括Morris蠕虫的历史和影响,以及如何用Python编写端口扫描器。作者探讨了Python在信息安全领域的应用,并分享了开发环境的配置经验,如Python版本选择、Ubuntu和Kali Linux的使用,以及遇到的模块安装
问题
。同时,文章展示了简单的端口扫描器代码,通过optparse库实现命令行交互,并介绍了多
线程
在扫描中的应用。
源码分析-SynchronousQueue
本文深入剖析SynchronousQueue的工作原理,包括其作为阻塞队列的特性、内部数据结构、公平性和非公平性模式的区别,以及核心算法实现细节。特别介绍了SynchronousQueue如何通过TransferStack和TransferQueue实现高效的数据交换。
Phi-3-mini-128k-instruct面试模拟器:基于Java八股文题库的实战应用
本文介绍基于Phi-3-mini-128k-instruct大模型构建的Java八股文AI面试模拟器,涵盖角色Prompt设计、检索增强知识库构建、多轮动态追问机制及实时评分反馈。系统支持JVM、并发、Spring等核心技术方向的个性化模拟面试,强调原理深挖与误区识别,适用于Java开发者面试备战与大模型垂直领域对话系统实践。
32步逻辑不崩!Claude Mythos预览版成代码审计“逻辑怪兽”:百万行项目也能秒找深层漏洞
Anthropic发布的Claude Mythos预览版具备长达32步以上的深层逻辑推演能力,可精准识别跨模块调用中的竞态条件、权限越权与内存泄漏等隐蔽漏洞。其依托逻辑拓扑建模与MCP协议实现高保真因果追踪,显著超越传统静态扫描工具。结合poloapi.top API网关,支持企业级CI/CD自动化审计流,实现百万行代码5分钟全量分析与修复建议生成。
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章