日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

closehandle()函数

發(fā)布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 closehandle()函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引用自《百度百科》,用于解決今天遇到的close handle 后什么時候釋放資源問題:

?

?

方法名稱:CloseHandle

位置:Kernel32.dll

BOOL CloseHandle(

HANDLE hObject

);

參數(shù)

hObject?:代表一個已打開對象handle。

返回值

TRUE:執(zhí)行成功;

FALSE:執(zhí)行失敗,可以調用GetLastError()獲知失敗原因。

函數(shù)說明

編輯

關閉一個內核對象。其中包括文件、文件映射、進程、線程、安全和同步對象等。在CreateThread成功之后會返回一個hThread的handle,且內核對象的計數(shù)加1,CloseHandle之后,引用計數(shù)減1,當變?yōu)?時,系統(tǒng)刪除內核對象。

若在線程執(zhí)行完之后,沒有調用CloseHandle,在進程執(zhí)行期間,將會造成內核對象的泄露,相當于句柄泄露,但不同于內存泄露,這勢必會對系統(tǒng)的效率帶來一定程度上的負面影響。但當進程結束退出后,系統(tǒng)會自動清理這些資源。

句柄(handle)由來:

編輯

windows 之所以要設立句柄,根本上源于內存管理機制的問題—虛擬地址,簡而言之數(shù)據(jù)的地址需要變動,變動以后就需要有人來記錄管理變動,(就好像戶籍管理一樣),因此系統(tǒng)用句柄來記載數(shù)據(jù)地址的變更。

數(shù)據(jù)對象加載進入內存中之后即獲得了地址,但是這個地址并不是固定的,(至于為什么以及什么情況下變動具體需要大家研究虛擬地址的原理與機制,我這里只提我確定知道的例子)數(shù)據(jù)對象會根據(jù)需要在內存與硬盤之間游弋移動(例如不常用的數(shù)據(jù)會為常用數(shù)據(jù)讓出其占用的內存空間,進而被淘汰進硬盤虛擬內存之中以優(yōu)化配置整體系統(tǒng)的資源,從而提升效率性能),因此其物理地址總是變動的,那么作為管理者 則必須對 管理對象所發(fā)生的變化了如指掌才行,因此系統(tǒng)為進程分配固定的地址(句柄)來存儲進程下的數(shù)據(jù)對象變化后的地址,也就是當前的地址,其實設計機制很簡單 :系統(tǒng)的某個部門移動了對象的地址后,同時上報給句柄所屬部門管理者,管理者將改動寫入句柄即可。該數(shù)據(jù)被重新起用時去其所屬句柄內按內容存取即可。

句柄,英文:HANDLE,在Windows編程中是一個很重要的概念,在許多地方都扮演著重要的角色。但由此而產(chǎn)生的句柄概念也大同小異,比如:《Microsoft Windows 3 Developer's Workshop》(Microsoft Press,by Richard Wilton)一書中句柄的概念是:在Windows環(huán)境中,句柄是用來標識項目的。

在程序設計中,句柄是一種特殊的智能指針?。當一個應用程序要引用其他系統(tǒng)(如數(shù)據(jù)庫、操作系統(tǒng))所管理的內存塊或對象時,就要使用句柄。

句柄與普通指針的區(qū)別在于,指針包含的是引用對象的內存地址,而句柄則是由系統(tǒng)所管理的引用標識,該標識可以被系統(tǒng)重新定位到一個內存地址上。這種間接訪問對象的模式增強了系統(tǒng)對引用對象的控制。

在上世紀80年代的操作系統(tǒng)(如Mac OS 和Windows)的內存管理中,句柄被廣泛應用。Unix系統(tǒng)的文件描述符基本上也屬于句柄。和其它桌面環(huán)境一樣,WindowsAPI大量使用句柄來標識系統(tǒng)中的對象,并建立操作系統(tǒng)與用戶空間之間的通信渠道。例如,桌面上的一個窗體由一個HWND類型的句柄來標識。如今,內存容量的增大和虛擬內存算法使得更簡單的指針愈加受到青睞,而指向另一指針的那類句柄受到冷落。盡管如此,許多操作系統(tǒng)仍然把指向私有對象的指針以及進程傳遞給客戶端的內部數(shù)組下標稱為句柄。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的closehandle()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。