1. 程式人生 > >Executor.submit()和Executor.execute()這兩個方法有什麼區別?

Executor.submit()和Executor.execute()這兩個方法有什麼區別?

此問題來自另外一篇文章,《15個最流行的java多執行緒面試問題》,現在對熟練掌握併發技能的開發者的需求越來越大,因此這個問題也越來越引起大家的重視。答案是:前者返回一個Future物件,可以通過這個物件來獲得工作執行緒執行的結果。

當我們考察異常處理的時候,又會發現另外一個不同。當你使用execute提交的任務丟擲異常時,此異常將會交由未捕捉異常處理過程來處理(uncaught exception handler),當你沒有顯式指定一個異常處理器的話,預設情況下僅僅會通過System.err打印出錯誤堆疊。當你用submit來提交一個任務的時候,這個任務一旦丟擲異常(無論是否是執行時異常),那這個異常是任務返回物件的一部分。對這樣一種情形,當你呼叫Future.get()方法的時候,這個方法會重新丟擲這個異常,並且會使用ExecutionException進行包裝。

相關推薦

Executor.submit()Executor.execute()方法什麼區別

此問題來自另外一篇文章,《15個最流行的java多執行緒面試問題》,現在對熟練掌握併發技能的開發者的需求越來越大,因此這個問題也越來越引起大家的重視。答案是:前者返回一個Future物件,可以通過這個物件來獲得工作執行緒執行的結果。 當我們考察異常處理的時候,又會發現另

Java Executor.submit()Executor.execute()方法什麼區別

此問題來自另外一篇文章,《15個最流行的java多執行緒面試問題》,現在對熟練掌握併發技能的開發者的需求越來越大,因此這個問題也越來越引起大家的重視。答案是:前者返回一個Future物件,可以通過這個物件來獲得工作執行緒執行的結果。 當我們考察異常處理的時候,又會發現另

在vue中,methodscomputed方法區別

        我們可以使用methods來代替computed,實際上效果是一樣,其中methods【有括號()】,computed不帶括號。        computed是基於它的依賴快取,只有相關依賴發生改變時才會重新取值。        methods在重新渲染的時

SAP BOPFESF2框架什麼區別

SAP社群上有這樣一個討論帖子: BOPF和ESF2 的區別? https://archive.sap.com/discussions/thread/3602400 BOPF全稱: 可以看下這位SAP員工的回覆: Hi Florian, Indranil expl

在c#中usingnew關鍵字什麼意義

using指令的兩個作用: 1.允許在名稱空間中使用型別,或者為型別建立別名; using System.Text; 或 using Project = PC.MyCompany.Project; 2.允許程式設計師指定使用資源的物件

ArcGIS 10.0破解了,不能使用3D analystspatial analyst工具,提示沒有許可證

ERROR 010096: There is no Spatial Analyst license currently available or enabled. Customize-->Extensions-->將3D Analyst和Spatial

Hibernate中為什麼要重寫equals()hashCode()方法

學到Hibernate的多對一對映,書上列舉的例子是多個訂單(Order)對應一個客戶(Customer)對應,同時提到在Hibernate中通過比較兩個持久化物件的識別符號屬性值(ID)來

二十、python 字串去重,主要依賴maketranstranslate方法

最近遇到一個問題,怎麼來對一個字串去重? 我的思路是1.先分割字串;2.然後使用set去重;3.用join連線起來。 那就引入了另一個問題:怎麼分割字串來保證結果中不包含空格?當然有很笨的方法,本篇主要談論有沒有一種更簡單的方法? 首先,先來看一下需要分

【轉】說說{}與[]符號什麼區別?

【轉】出自:  http://blog.51cto.com/lidao/1926390   1.題目 說說{}與[]這兩個符號有什麼區別? 2.參考答案 這兩個看似簡單的符號,其實內容還不少。我們一起來看看。 2.1 萬用字元中 萬用字元在linux中通常用來匹配/找檔名或目

記住方法,手機密碼解鎖不求人

現在的手機一般都有指紋解鎖和密碼解鎖兩種解鎖模式,一般情況下手機只要不關機,基本都是指紋解鎖,畢竟比較方便。但是有時候頻繁更改密碼或者長時間未輸入密碼,開機之後指紋是沒有反應的,那麼接下來看看如何在忘記密碼鎖的時候如何解鎖。 推薦方法1:完美解鎖手機同時儲存資料 這個方法要求華為手機使用者先前

藍芽bluetoothGatt.disconnect()bluetoothGatt.close()方法區別

在進行BLE開發過程中可能會遇到操作失敗等情況,這個時候可能需要斷開與BLE的連線或者清理相關資源.在BluetoothGatt類中有兩個相關的方法 1. disconnect() 2. close() 那麼這個兩個方法有什麼區別,又該如何使用呢. di

jquery擴充套件的方法區別

jQuery.extend:Query本身的擴充套件方法 jQuery.fn.extent(Object) jQuery 所選物件擴充套件方法 jQuery.extend 我們先把jQuery看成了一個類,這樣好理解一些。 jQuery.exten

BLE LL層 DataHeader中 NESNSNBIT的作用

是否 image blog 技術 是不是 流控 master ron 發包 在BLE包中,沒有發現幀號,但有NESN和SN用於區分是否新包,也可用於重傳。在Core4.2 V6-B-4.5.9 中有描述 可理解為: Master只更新SN Slave只更新N

近年來,過勞死加班關鍵詞一再進入人們的視野。滴滴回應:核實後把獎金發

不支持 num 中文 總結 原本 ssi 驗證 過時 session *隨機產生規定範圍內數字[15,36] 規律:num=(in)(Marandom()*(y-x+1))+x;* num=(in)(Marandom()*22)+15; *隨機產生規定範圍內數字(15 ??

一個數組中個數的為N,找出數字的下標

完整 進行 代碼 ray 由於 比較 返回 put else 分析,兩個數字的和為N。那麽這兩個數字是否是唯一的呢?輸出的下標是否是第一對出現的呢? 1,我們假設這兩個數字是唯一的 和是唯一的,那麽其中一個數字越大,另一個數字就越小。想到大小關系,我們就想到了排序。那麽首先

systemctl命令是系統服務管理器指令,它實際上將 service chkconfig 命令組合到一起。

bubuko family centos microsoft inf conf 技術分享 system com 1、centos 檢查服務是否開機自啟 (ntpd是原生的服務,mysql是註冊的服務) 參考:1.http://man.linuxde.net/

如何用棧模擬實現一個佇列? 如果堆疊的容量分別是mn(m>n),你的方法能保證佇列的最大容量是多少?

保證入隊完畢之後才可以出隊; 分析:棧的特點是“後進先出(LIFO)”,而佇列的特點是“先進先出(FIFO)”。用兩個棧模擬實現一個佇列的基本思路是:用一個棧作為儲存空間,另一個棧作為輸出緩衝區,入隊時把元素按順序壓入兩棧模擬的佇列,出隊時按入隊的順序出棧即可。      如下圖,用容

vue陣列優化的方法track-bykey 什麼區別

1.  v-bind:key="  " 是vue2.x提出的,1.x的寫法是track-by=" " 2、(1)vue1.x中v-for不能顯示重複資料,要在v-for的元素內定義track-by="$index",即以序號為索引,如此當增加或者刪除資料,view都會跟著改變