執行緒組

執行緒組(ThreadGroup)就是由執行緒組成的管理執行緒的類,這個類是java.lang.ThreadGroup類。

定義

在Java中每一個執行緒都歸屬於某個執行緒組管理的一員,例如在主函式main()主工作流程中產生一個執行緒,則產生的執行緒屬於main這個執行緒組管理的一員。

定義一個執行緒組,通過以下代碼可以實現。

ThreadGroup group=new ThreadGroup("group");

Thread thread=new Thread(group,"the first thread of group");

舉例

ThreadGroup類中的某些方法,可以對執行緒組中的執行緒產生作用。例如,setMaxPriority()方法可以設定執行緒組中的所有執行緒擁有最大的優先權。

所有執行緒都隸屬於一個執行緒組。那可以是一個默認執行緒組,亦可是一個創建執行緒時明確指定的組。在創建之初,執行緒被限制到一個組裡,而且不能改變到一個不同的組。每個套用都至少有一個執行緒從屬於系統執行緒組。若創建多個執行緒而不指定一個組,它們就會自動歸屬於系統執行緒組。

執行緒組也必須從屬於其他執行緒組。必須在構建器里指定新執行緒組從屬於哪個執行緒組。若在創建一個執行緒組的時候沒有指定它的歸屬,則同樣會自動成為系統執行緒組的一名屬下。因此,一個應用程式中的所有執行緒組最終都會將系統執行緒組作為自己的“父”

之所以要提出“執行緒組”的概念,一般認為,是由於“安全”或者“保密”方面的理由。根據Arnold和Gosling的說法:“執行緒組中的執行緒可以修改組內的其他執行緒,包括那些位於分層結構最深處的。一個執行緒不能修改位於自己所在組或者下屬組之外的任何執行緒””(注釋①)

①:《The Java Programming Language》第179頁。該書由Arnold和James Gosling編著,Addison-Wesley於1996年出版

相關詞條

熱門詞條

聯絡我們