總結execute()和submit()方法的區別:
1. 接收的參數不一樣;
2. submit()有返回值,而execute()沒有;
例如,有個validation的task,希望該task執行完后告訴我它的執行結果,是成功還是失敗,然后繼續下面的操作。
3. submit()可以進行Exception處理;execute()直接拋出了異常,但它也僅僅是輸出而已,我們無法使用日志框架對其進行記錄,因為它這個打印動作我們是不可控的。
例如,如果task里會拋出checked或者unchecked exception,而你又希望外面的調用者能夠感知這些exception並做出及時的處理,那么就需要用到submit,通過對Future.get()進行拋出異常的捕獲,然后對其進行處理。