子執行緒異常丟擲 及 主線程事務回滾

2021-08-15 20:06:32 字數 522 閱讀 5075

業務模型期望的結果是這樣的,檢測子執行緒的異常情況,如果發生異常,主線程回滾,否則提交

;2.如果執行緒丟擲unchecked(runnable) exception,則執行緒終結,主線程不受影響

所以使用runnable,主線程壓根不知道子執行緒的情況,事務更無從談起。

所以使用callable機制

兩種方法

1 使用異常

futuretask   

publicv get()throwsinterruptedexception, executionexception
主線程    呼叫  get   直接丟擲異常觸發事務管理

2 使用返回if(

"failed"

.equals(result))   

收到failed返回後,丟擲異常觸發事務管理

如何主線程捕獲子執行緒的異常

第乙個 子執行緒類 public class threadexceptionrunner implements runnable 第二步 主線程類 在最後面有我自定義的兩個class是作為配置用的,有解釋 public class demothread 1 首先 實現乙個 thread.uccaug...

主線程和子執行緒

子執行緒通過 handlerthread的thread.getlooper 繫結,在主線程的handler的handlermessage中呼叫threadhandler.sendmessagedelay msg,1000 向子執行緒傳送訊息。在子執行緒中通過handler.sendmessagede...

主線程和子執行緒

主線程負責管理由它建立的子執行緒,建立 啟動 掛起 停止等。主線程通過發訊息的方式管理子執行緒,例如,給子執行緒傳送start 訊息,子執行緒啟動,子執行緒執行入口的run 方法。thread有下面兩個構造方法 thread runnable target,string name thread ru...