# Thread etc ###### tags: `Java` `Thread` **ThreadGroup** 1. TheadGroup 預設為呼叫該執行緒的執行緒的ThreadGroup。 ex : main的ThreadGroup為mainTG,在main建立了一個新的執性緒 A ,則A的ThreadGroup 為 mainTG 2. TheadGroup可在建立執行緒時設定。 3. interrupt一個thread group 會導致該group所有的active thread都被interrupt。 4. destory在父group中將自己移除,若還有active thread 則拋錯。 5. 守護group將一個group設為daemon但不會影響執行緒的daemon屬性, 當一個group為守護group時,group中沒有任何active thread則自動destory **Hook** JVM的程序的退出是由於JVM中沒有active的非daemon執行緒或者收到系統中斷信號。 對JVM程序註冊一個Hook執行緒,則在JVM退出時該執行緒會啟動 透過Rumtime可以為JVM註冊多個Hook執行緒 Runtime.getRumtime().addShutdwonHook(Thead t); 實例 : 在起動某程式中會建立一個.lock檔案避免重複啟動,在程式中斷時透過Hook刪除該檔案 注意 : 1. 在linux中 kill pid , kill -1 pid JVM程序會收到中斷信號但kill -9 pid 則不會 2. Hook可以執行一些資源釋放的工作 3. 盡量不要執行耗時非常長的工作,否則程序會遲遲不能退出
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up