java句柄是什么意思 調(diào)用closehandle為什么無法關(guān)閉文件句柄?
調(diào)用closehandle為什么無法關(guān)閉文件句柄?許多程序在創(chuàng)建線程時都是這樣寫的:threadhandle=createthread(null,0,…)closehandel(threadhandl
調(diào)用closehandle為什么無法關(guān)閉文件句柄?
許多程序在創(chuàng)建線程時都是這樣寫的:threadhandle=createthread(null,0,…)closehandel(threadhandle)
1。線程和線程句柄不是一回事。線程在CPU上運(yùn)行。。。。。。(不清楚),線程句柄是一個內(nèi)核對象。我們可以通過句柄操作線程,但線程的生命周期與線程句柄的生命周期不同。線程的生命周期是從線程函數(shù)執(zhí)行開始到返回。線程句柄的生命周期是從createthread到closehandle()。
2. 線程句柄是一種內(nèi)核對象。系統(tǒng)維護(hù)每個內(nèi)核對象。當(dāng)每個內(nèi)核對象的引用計(jì)數(shù)為0時,系統(tǒng)從內(nèi)存中釋放該對象。CloseHandle將線程對象的引用計(jì)數(shù)減少1。所有內(nèi)核對象(包括線程句柄)都是系統(tǒng)資源,使用時需要返回這些資源。也就是說,使用完手柄后必須關(guān)閉手柄。如果不這樣做,系統(tǒng)的句柄資源將很快用完。僅僅關(guān)閉一個線程句柄對象意味著我將不再使用句柄,也就是說,我將不會干擾與句柄對應(yīng)的線程。線沒有結(jié)束。