c++ 多线程:线程句柄可以提前关闭,但是线程并没有关闭
生活随笔
收集整理的這篇文章主要介紹了
c++ 多线程:线程句柄可以提前关闭,但是线程并没有关闭
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
很多程序在創(chuàng)建線(xiàn)程都這樣寫(xiě)的:
ThreadHandle = CreateThread(NULL,0,.....);
CloseHandel(ThreadHandle );
1,線(xiàn)程和線(xiàn)程句柄(Handle)不是一個(gè)東西,線(xiàn)程是在cpu上運(yùn)行的.....(說(shuō)不清楚了),線(xiàn)程句柄是一個(gè)內(nèi)核對(duì)象。我們可以通過(guò)句柄來(lái)操作線(xiàn)程,但是線(xiàn)程的生命周期和線(xiàn)程句柄的生命周期不一樣的。線(xiàn)程的生命周期就是線(xiàn)程函數(shù)從開(kāi)始執(zhí)行到return,線(xiàn)程句柄的生命周期是從CreateThread返回到你CloseHandle()。
2,線(xiàn)程句柄是一種內(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就是將該線(xiàn)程對(duì)象的引用記數(shù)減1。所有的內(nèi)核對(duì)象(包括線(xiàn)程Handle)都是系統(tǒng)資源,用了要還的,也就是說(shuō)用完后一定要closehandle關(guān)閉之,如果不這么做,你系統(tǒng)的句柄資源很快就用光了。
只是關(guān)閉了一個(gè)線(xiàn)程句柄對(duì)象,表示我不再使用該句柄,即不對(duì)這個(gè)句柄對(duì)應(yīng)的線(xiàn)程做任何干預(yù)了。并沒(méi)有結(jié)束線(xiàn)程。
總結(jié)
以上是生活随笔為你收集整理的c++ 多线程:线程句柄可以提前关闭,但是线程并没有关闭的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 码率问题
- 下一篇: CC++动态分配内存(手动分配内存)三种