●CreateThread() API 用於創建線程。 API 返回同時線程句柄,並通過參數得到線程標識符 (ID)。 線程句柄有完全訪問權創建線程對象。 運行線程時線程 ID 唯一標識線程在系統級別。
●ID是在Windows系統范圍內唯一標示Thread的。
●Handle是用來操作Thread的,可以有多個,每個HANDLE可以有不同的操作權限,在不同進程OpenThread得到的值不一樣。
●線程的ID是系統全局的,其HANDLE是進程局部的.
●此ID只在線程的生存期內有效。
●HANDLE是os和client之間用來操作進程和線程一個橋梁,os有一張維護HANDLE的表單,里面大概放置了 HANDLE的引用計數和有關的屬性,HANDLE是os標識進程和線程的東西,但是用戶也可以用這個來標識進程和線程,對其操作;而ID是os用來標識進程和線程的,並且是全局唯一的, 但用戶可以通過這個ID獲得進程線程的HANDLE,多次得到的HANDLE並不一定是一樣的.HANDLE是內核對象,而ID好像不是,並沒有專門創建ID的函數.
●ID是CreateThread時操作系統自動生成的。
●線程的句柄和id是不同的。
在windows系統中,線程的id是唯一對應的,也就是說,如果兩個線程返回相同的id,則他們必然是同一線程,反之一定是不同的線程。而線程的句柄並不是線程的唯一標識,線程的句柄只是用來訪問該線程的的一個32位值,盡管相同的句柄一定標識同一線程,但同一線程可能擁有兩個打開的句柄,因此,不能用句柄來區分兩個線程是否是同一線程。