執行緒控制代碼有什麼用

2021-06-20 12:57:37 字數 703 閱讀 5714

今天溫習很久前寫的**,發現自己寫的這麼一句**,

m_htheard = createthread(null,0,regnotifyproc,lpvoid(this),0,null);

closehandle(m_htheard);

突然給糊塗了,剛建立的執行緒,為什麼有close了,還是當初入門不踏實,沒有細想,現在反過來都記不得了,通過查資料,解決了我的疑惑。

1,執行緒和執行緒控制代碼(handle)不同,執行緒是乙個程式的工作流程,執行緒控制代碼是乙個核心物件。執行緒的生命週期就是執行緒函式從開始執行到執行緒結束,執行緒控制代碼一旦createthread返回,如果你不用它操作執行緒或者等待執行緒等操作比如waitforsingleobject,就可以closehandle。

(ps:對於執行緒來講,如果執行緒在執行狀態則為無訊號狀態,在退出後為有訊號狀態。所以我們可以使用 waitforsingleobject 來等待執行緒退出)

2,createthread以後需要對這個執行緒做一些操作,比如改變優先順序,被其他執行緒等待,強制termatethread等,就要儲存這個控制代碼,使用完了再操作closehandle。

4、關閉乙個核心物件。其中包括檔案、檔案對映、程序、執行緒、安全和同步物件等。在createthread成功之後會返回乙個hthread的handle,且核心物件的計數加1,closehandle之後,引用計數減1,當變為0時,系統刪除核心物件。

做一些總結,以作知識積累。

控制代碼詳解,什麼是控制代碼?控制代碼有什麼用?

最近在做專案時遇到了控制代碼的概念,之前只知道在編譯原理裡有控制代碼的概念,在實際的程式設計時會經常用到控制代碼。這裡需要說明 1.這裡將控制代碼所能標識的所有東西 如視窗 檔案 畫筆等 統稱為 物件 2.圖中乙個小橫框表示一定大小的記憶體區域,並不代表乙個位元組,如標有0x00000ac6的橫框表...

dev null有什麼用

把 dev null 看作 黑洞 它非常等價於乙個只寫檔案.所有寫入它的內容都會永遠丟失.而嘗試從它那兒讀取內容則什麼也讀不到.然而,dev null 對命令列和指令碼都非常的有用.禁止 標準輸出 cat filename dev null 禁止 標準錯誤 rm badname 2 dev null...

技術有什麼用?

技術有什麼用?收藏 最近在cto俱樂部的乙個討論分享,關於技術和創新的作用 技術向底層延伸,應該是科技,技術向上層延伸,應該是應用,如果單純把技術看作工具,編碼,實現或一種生存的手段,那就太狹隘了。二戰期間,美國和蘇聯都因為戰爭的因素,發展了高精尖技術,二戰結束,美國把可以商業化的科研產品交給了企業...