问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

不closehandle的后果

发布网友 发布时间:2022-04-20 20:44

我来回答

1个回答

热心网友 时间:2022-07-12 05:29

摘抄:我在看代码时发现,如下一段代码:
HANDLE threadhandle = CreateThread(NULL, 0, RecvThreadProc, NULL, NULL, NULL);
CloseHandle(threadhandle);
不明白为什么创建线程后,要马上把线程的句柄关闭,这样做的目的是什么? 这样做会杀掉线程吗? 1,线程和线程句柄(Handle)不是一个东西,线程是在cpu上运行的.....(说不清楚了),线程句柄是一个内核对象。我们可以通过句柄来操作线程,但是线程的生命周期和线程句柄的生命周期不一样的。线程的生命周期就是线程函数从开始执行到return,线程句柄的生命周期是从CreateThread返回到你CloseHandle()。
2,所有的内核对象(包括线程Handle)都是系统资源,用了要还的,也就是说用完后一定要closehandle关闭之,如果不这么做,你系统的句柄资源很快就用光了。 计数减一而已,前提是你再不需要用这个线程句柄,这样线程结束后,资源立刻被释放。 内核对象由内核所拥有,而不是由进程所拥有。
在C l o s e H a n d l e 返回之前,它会清除进程的句柄表中的项目,该句柄现在对你的进程已经无效,不应该试图使用它。无论内核对象是否已 经撤消,都会发生清除操作。当调用C l o s e H a n d l e 函数之后,将不再拥有对内核对象的访问权,不过,如果该对象的使用计数没有递减为 0 ,那么该对象尚未被撤消。这没有问题,它只是意味着一个或多个其他进程正在使用该对象。当其他进程停止使用该对象时(通过调用C l o s e H a n d l e ),该对象将被撤消。
不closehandle的后果

CloseHandle执行的处理是 释放为这个句柄所分配的所有资源,如果没有关闭,结果可想。Windows有系统保护功能,当进程关闭后,Windows会释放为这个进程分配的所有资源,你使用的那些handle也会被自动释放掉。我们在编程时最好遵循微软给出的范例及要求,否则程序运行时经常会出现奇怪的表现。

CloseHandle函数说明

如果在创建的线程执行完毕后,忘记调用CloseHandle,一个常见的后果是内核对象的泄露,也被称为句柄泄露。这与内存泄露不同,内存泄露会导致可用内存资源的持续减少,而句柄泄露则可能导致系统资源的浪费。长期来看,这种泄露会降低系统的效率和性能,因为内核对象的无谓占用会占用宝贵的系统资源。然而,不必过于...

电脑报C:\WINNT\system32\services.exe:KERNEL32.LoadLibraryA缓冲区...

CloseHandle( hProcess ); // 失败处理 } if ( WriteProcessMemory( hProcess, lpBuf, (LPVOID)lpszDll, dwSize, &dwWritten ) ) { // 要写入字节数与实际写入字节数不相等,仍属失败 if ( dwWritten != dwSize ) { VirtualFreeEx( hProcess, lpBuf, dwSize, MEM_DECOMMIT ); CloseHandle( hProcess )...

怎么做植物大战僵尸可以造植物的修改器

‘ ACONLIST’”和标识“块的大小”这两部分,共计 12字节,绝对不能被更改、移动及删除,否则后果自负。 可能为了让文字说明信息系统化,在ACONLIST块内部包容了若干子块,本例中用到的两个分别是:INFOINAM块(提供本文件的解释说明)和IART块(用于插入版本信息)。说实在,诸位可以运用在 AVI文件中插入自定义块的方...

怎么制作游戏修改器,要简单化

‘ ACONLIST’”和标识“块的大小”这两部分,共计 12字节,绝对不能被更改、移动及删除,否则后果自负。可能为了让文字说明信息系统化,在ACONLIST块内部包容了若干子块,本例中用到的两个分别是:INFOINAM块(提供本文件的解释说明)和IART块(用于插入版本信息)。说实在,诸位可以运用在 AVI文件中插入自定义块的方法...

为什么要使用GlobalLock

使用GlobalLock的目的是为了保证内存管理时真的是用【内存】而不是【虚拟内存的磁盘镜像】,否则效率会降低。图形操作程序很讲求内存的时效性,这一点很重要。参考资料:http://baike.baidu.com/view/1799332.htm?fr=ala0_1_1

什么是FLASH游戏(写论文用的)

Call wMem(&H4700**, Val(Text1(0)), 1) '这里就要注意和上面的对应就可以,不对应的后果是很严重的哦!Call wMem(&H4700**, Val(Text1(1)), 1)Call wMem(&H4700**, Val(Text1(2)), 1)Call wMem(&H4700**, Val(Text1(3)), 1)Call wMem(&H4700**, Val(Text1(4)), 1)Call wMem(...

千年虫是不是病毒

“磁碟机”也可以通过U盘和网页挂马传播,但目前尚没有发现病毒作者通过攻破大型网站的方式挂马传播的案例,这也是目前“磁碟机”在传播范围上尚不及“熊猫烧香”的原因,但如果一旦病毒作者通过这种方式大面积传播,后果将不堪设想。 二、反攻杀毒软件能力 “熊猫烧香”和“磁碟机”病毒都有反攻杀毒软件的能力,但不同的...

VC6.0共享内存FileMapping运行时间问题

你的程序只申请资源而不释放资源,所以造成内存溢出。这种行为是很危险的,不停的创建内核对象,你的程序不停得申请资源,后果很难预料。我用你的程序当进程所占内存到100多m的时候就终止了。改成下面的代码,所占内存不会有大的变化。int main(){ int kkk=932156431;lable:HANDLE m_hMapFile=Create...

360后门事件的具体情况是什么?

瑞星蔑视法律,根本无视法律后果。要打击竞争对手,瑞星的策略是先把竞争对手的名誉给搞臭,造成对手的商业损失。至于败诉,那是几年以后的事情,大不了赔点钱了事。看一看瑞星的诉讼史,它诽谤卡巴,赔了45万元;诽谤王学武,只赔了5000元;陷害微点,只赔了一个员工当替罪羊进了大牢。瑞星诬蔑360,...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
红岩洞老火锅哪家最好吃 血常规白细胞高的原因 生日快乐英文怎么写,求大神 迅游加速器下载,2020永久VIP破解版软件介绍_迅游加速器下载,2020永久VIP... 请问‘生日快乐’的英文怎么写? ...有什么网游加速器吗 不需要VIP就可以加速的 ...你不用他不减时间的。不是跟视频vip一样的那种? 怎样用电脑控制整栋楼的灯 发给客户的生日快乐祝福语 初学者买什么古筝好 苹果相册编辑文字怎么弄 iphone如何给图片编辑文字 雷雨论文参考文献 《士兵突击》中饰演史今班长的演员叫什么,以及他... 士兵突击里的史今扮演者是谁?介绍一下~~ 尤金奥尼尔简介,最好中英文的都有。 也希望有关于... 刘宝寅的作品 舞台剧剧本 谁能推荐几部音乐剧和话剧? 士兵突击中王宝强的第一任班长真实姓名是什么? 张译都演过哪些电视剧或电影? 张译档案 急求!!悲悼三步曲剧本.请各位山人帮忙!! 谁有《士兵突击》的演员表和资料? 求上海师范大学戏剧影视编导899短片剧本创作考研参... 谁知道张译的简历 士兵突击中的团长的演员资料! 谁有《进入黑夜的漫长旅程》的剧本`!? 奥尼尔的悲悼在哪里下载 外国的话剧悲悼的全名 比尔盖茨 简介及最新咨询 windows/dos/bat有没有搜索运行命令?搜索文件中的... 为什么玩DNF用双开会很容易电脑蓝屏? 怎样鉴别金镯子的真假 怎么才能看出黄金手镯是真是假 我昨天买了周大生的黄金手镯要怎样分辨它是不是正品? 怎么样才可以辨别黄金手镯的真伪?(有鉴定证书周... 前几天在周大生买个一口价黄金手镯请问是真的吗?怎... 6千块钱买了一个金镯子可是太轻了 别人都说放在手... 今天买了黄金手镯怎么能知道是真的 黄金手镯为什么这么硬,会不会是假的? 老凤祥金怎么识别真假? 黄金手镯成色的鉴别常用方法有哪几种?黄金手镯应该... 怎样辨别真假金银? 老凤祥买了个古法黄金手镯怎么知道是真的? 求韩国还是日本版的动画片西游记 蜂蜜柚子茶的功效有哪些 冬天喝蜂蜜柚子茶的好处 冬天适不适合喝蜂蜜柚子茶 女孩子冬天喝蜂蜜柚子茶好吗 喝蜂蜜柚子茶有什么好处?
  • 焦点

最新推荐

猜你喜欢

热门推荐