Java學習心得 執行緒組異常處理流程

2021-09-12 02:50:06 字數 682 閱讀 5720

學了一段時間執行緒和並行api,這裡有一點心得,來和大家分享一下。

比較不好理解的就是執行緒組丟擲異常並且此異常並沒有**獲的處理流程,主要分為三個步驟

(1)首先看看當前執行緒組(threadgroup)有沒有父類的執行緒組,如果有,則使用父類的uncaughtexception()方法。

(2)如果沒有,就看執行緒是不是呼叫setuncaughtexceptionhandler()方法建立thread.setuncaughtexceptionhandler例項。如果建立,直接使用它的uncaughtexception()方法處理異常。

(3)如果上述都不成立就看這個異常是不是threaddead例項,如果是,什麼都不做,如果不是,輸出堆疊追蹤資訊(printstacktrace)。

下面的**可能幫你更深刻的理解這個流程:

但是與之相比,thread1建立了setuncaughtexceptionhandler例項,所以符合第二種情況,使用的是這個例項的uncaughtexceptiuon方法。

這些是我對執行緒組異常處理流程的理解,如果有不對的地方,請大家指出,以便修改。

JAVA學習心得 執行緒

1 執行緒的優先順序都在常數1 thread.min priority 到10 thread.max priority 之間。若沒有明確設定,則執行緒的優先順序為常數5 thread.norm priority 執行緒優先順序可以通過setpriority int grade 方法調整。getpri...

Java學習心得

string systemname system.getproperties getproperty os.name if systemname.tolowercase startswith win else 定義時間格式 private static datetimeformatter sf da...

多執行緒學習心得

除非一台計算機有多個cpu 如雙核 否則是不會真正的執行兩個以上的程式的。但是如果是那樣我們為什麼可以同時執行多個程式呢?這就是多執行緒的作用了,乙個程序是由多個執行緒組成的,一台計算機可以同時執行多個不同程序的執行緒,而不是乙個完整的程序。多執行緒主要有兩個優勢 1.提高介面程式的響應速度 2.充...