建立執行緒後為什麼關閉了執行緒控制代碼,執行緒還是可以執行

2021-04-15 04:57:21 字數 627 閱讀 3394

建立執行緒後為什麼關閉了執行緒控制代碼,執行緒還是可以執行?

主線程只要擁有執行緒控制代碼,事後就可以對執行緒執行某些操作,比如查詢執行緒狀態等等,靠的就是控制代碼,如果沒有控制代碼,系統就無從知道要查的是那個執行緒的狀態。但保持這個控制代碼不關閉,並不是執行緒執行的條件。

關閉執行緒控制代碼只是釋放控制代碼資源,新開啟執行緒後,如果不再利用其控制代碼,應該關閉控制代碼,釋放系統資源。關閉執行緒控制代碼和執行緒的結束與否沒有關係。

控制代碼可以認為是系統對資源(如執行緒)的分配的乙個編號。關閉這個編號,對於不同的資源,效果不盡相同。對於執行緒來說,關閉這個編號並不意味著終止執行緒,只是之後很難再操縱這個執行緒。  

這就好比摘掉了門牌號,並不傷害這一家人,只是以後往這送信就麻煩些了。  

還有,如果主線程只想建立執行緒,而並不想之後再查詢或操縱它,那麼及時關閉控制代碼是個好習慣,免得當時沒關,以後又忘了,於是洩漏了系統的控制代碼資源(系統控制代碼總數是有限的)。

如果知道引用計數是怎麼回事就很好解釋了。  

closehandle(hthread)   只是減去乙個hthread的引用計數。

執行緒控制代碼就像你家的位址,執行緒就像你的家房子,  

你說如果沒有了你家的位址,難道就沒有你家的房子了嗎?  

執行緒與執行緒控制代碼也是一樣的道理,控制代碼只是可以對這個執行緒作一些操作。

建立執行緒後為什麼關閉了執行緒控制代碼,執行緒還是可以執行

主線程只要擁有執行緒控制代碼,事後就可以對執行緒執行某些操作,比如查詢執行緒狀態等等,靠的就是控制代碼,如果沒有控制代碼,系統就無從知道要查的是那個執行緒的狀態。但保持這個控制代碼不關閉,並不是執行緒執行的條件。關閉執行緒控制代碼只是釋放控制代碼資源,新開啟執行緒後,如果不再利用其控制代碼,應該關閉...

借唄還完之後為什麼關閉了 為什麼螞蟻某唄被關閉了?

螞蟻金服被四部委約談後,金融科技監管環境發生了變化。螞蟻金服應四部委要求進行降槓桿操作,以防止發生資金鏈斷裂危機。為了更好的闡述原因,我需要闡述一下螞蟻金服的資金鏈斷裂風險 螞蟻在監管前使用的是100倍槓桿,簡單地說 就是螞蟻金服有一元錢,但是他借你100元。平常這麼幹沒有什麼事,因為螞蟻本身是記賬...

為什麼要建立執行緒池

在有些工作場景中,比如說伺服器程式設計中,如果為每乙個客戶都分配乙個新的工作執行緒,並且當工作執行緒與客戶通訊結束時,這個執行緒被銷毀,這就需要頻繁的切換工作執行緒,這會帶來一些負擔,最主要的是系統大的開銷和系統資源不足問題。首先,伺服器建立和銷毀工作執行緒的開銷很大,如果伺服器與很多客戶端通訊,並...