執行緒控制代碼和執行緒ID的區別

2022-02-03 06:03:33 字數 736 閱讀 2783

●createthread() api 用於建立執行緒。 api 返回同時執行緒控制代碼,並通過引數得到執行緒識別符號 (id)。 執行緒控制代碼有完全訪問權建立執行緒物件。 執行執行緒時執行緒 id 唯一標識執行緒在系統級別。

●id是在windows系統範圍內唯一標示thread的。   

●handle是用來操作thread的,可以有多個,每個handle可以有不同的操作許可權,在不同程序openthread得到的值不一樣。  

●執行緒的id是系統全域性的,其handle是程序區域性的.

●handle是os和client之間用來操作程序和執行緒乙個橋梁,os有一張維護handle的表單,裡面大概放置了  

handle的引用計數和有關的屬性,handle是os標識程序和執行緒的東西,但是使用者也可以用這個來標識程序和執行緒,對其操作;而id是os用來標識程序和執行緒的,並且是全域性唯一的,  但使用者可以通過這個id獲得程序執行緒的handle,多次得到的handle並不一定是一樣的.handle是核心物件,而id好像不是,並沒有專門建立id的函式.

●id是createthread時作業系統自動生成的。

●執行緒的控制代碼和id是不同的。  

在windows系統中,執行緒的id是唯一對應的,也就是說,如果兩個執行緒返回相同的id,則他們必然是同一執行緒,反之一定是不同的執行緒。而執行緒的控制代碼並不是執行緒的唯一標識,執行緒的控制代碼只是用來訪問該執行緒的的乙個32位值,儘管相同的控制代碼一定標識同一執行緒,但同一執行緒可能擁有兩個開啟的控制代碼,因此,不能用控制代碼來區分兩個執行緒是否是同一執行緒。

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...

執行緒控制代碼和執行緒標識

handle的引用計數和有關的屬性,handle是os標識程序和執行緒的東西,但是使用者也可以用這個來標識程序和執行緒,對其操作 createthread api 用於建立執行緒。api 返回同時執行緒控制代碼,並通過引數得到執行緒識別符號 id 執行緒控制代碼有完全訪問權建立執行緒物件。執行執行緒...