為什么要在_beginthread之后立即CloseHandle()它?-----來自網(wǎng)絡(luò)
csoapy 發(fā)表于 2006-8-19 9:48:25
看了幾個(gè)多線程的示例代碼,都是這么做的。
查了下MSDN,它說CloseHandle時(shí)如果是被關(guān)的對(duì)象是線程的話也不會(huì)引起線程退出。
不明白。
song_09 發(fā)表于 2006-8-19 13:11:31
創(chuàng)建線程后會(huì)返回一個(gè)線程句柄,線程的使用記數(shù)為2,在你得到線程句柄后如果不對(duì)線程進(jìn)行其他操作的話就通過CloseHandle()關(guān)閉該句柄,同時(shí)線程記數(shù)-1。線程執(zhí)行退出時(shí),記數(shù)也會(huì)減1,記數(shù)為0時(shí),操作系統(tǒng)會(huì)釋放線程的句柄資源,因此,大多數(shù)情況下,創(chuàng)建完線程后都會(huì)關(guān)閉線程句柄。跟多詳細(xì)信息可以參考《windows核心編程》。
louifox 發(fā)表于 2006-8-19 13:14:42
關(guān)閉線程句柄不會(huì)引起線程結(jié)束,只是減少線程內(nèi)核對(duì)象的引用計(jì)數(shù)。
hailongchang 發(fā)表于 2006-8-23 16:47:02
線程是一種內(nèi)核對(duì)象,系統(tǒng)維護(hù)著每一個(gè)內(nèi)核對(duì)象,當(dāng)每個(gè)內(nèi)核對(duì)象引用記數(shù)為0時(shí),系統(tǒng)就從內(nèi)存中釋放該對(duì)象,CloseHandle就是將該線程對(duì)象的引用記數(shù)減1
posted on 2007-02-28 13:42 大龍 閱讀(1574) 評(píng)論(0) 編輯 收藏 引用