3 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
異常/錯(cuò)誤處理有所不同。
與排隊(duì)的任務(wù)execute()是產(chǎn)生一些Throwable將導(dǎo)致UncaughtExceptionHandler對(duì)Thread正在運(yùn)行的任務(wù)被調(diào)用。如果未安裝任何自定義處理程序,則將調(diào)用默認(rèn)值UncaughtExceptionHandler(通常將Throwable堆棧跟蹤打印到)System.err。
另一方面,Throwable由排隊(duì)的任務(wù)所生成的submit()將綁定Throwable到Future從調(diào)用生成的submit()。調(diào)用get()時(shí),F(xiàn)uture將引發(fā)一個(gè)ExecutionException帶有原始Throwable原因的(可通過調(diào)用getCause()進(jìn)行訪問ExecutionException)。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
取自Javadoc:
方法通過創(chuàng)建并返回可用于取消執(zhí)行和/或等待完成的{@link Future}來submit擴(kuò)展基本方法{@link Executor#execute}。
就個(gè)人而言,我更喜歡使用execute,因?yàn)樗犉饋砀呗暶餍?,盡管這實(shí)際上是個(gè)人喜好問題。
提供更多信息:在實(shí)現(xiàn)的情況下,ExecutorService調(diào)用返回的核心實(shí)現(xiàn)Executors.newSingleThreadedExecutor()是ThreadPoolExecutor。
該submit呼叫通過其母公司提供的AbstractExecutorService所有內(nèi)部調(diào)用執(zhí)行。ThreadPoolExecutor直接由execute覆蓋/提供。
添加回答
舉報(bào)