callable和runnbale一樣代表著是執行緒任務,區別在於callable有返回值並且可以丟擲異常。
建立並啟動有返回值的執行緒的步驟如下:
建立callable介面的實現類,並實現call()方法,該call()方法將作為執行緒執行體,並且該call()方法有返回值。
將callable例項傳入futuretask類。
使用futuretask物件作為thread物件的target建立並啟動新執行緒。
呼叫futuretask物件的get()方法來獲得子執行緒結束後的返回值。
示例**:
mycallable類:
public class mycallable implements callable
return sum;
}}
main類:
public class main catch (exception e)
}
啟動後我們可以看到主線程定義的sum變數成功取到mycallable例項計算得到的sum值。
擴充套件:在future介面裡定義如下幾個公共方法來控制它關聯的callable任務。
JAVA多執行緒之 執行緒池
執行緒池顧名思義,就是乙個放置執行緒的池子。就跟資料庫連線池差不多。執行緒池通過對併發執行緒的控制,能有效的節省系統資源的浪費,提高系統的效能。學習執行緒池,先了解一下執行緒池的乙個基本結構 executor是乙個介面,其中只有乙個方法,就是execute方法。所以executor實際就是乙個執行緒...
Java多執行緒之執行緒安全
當多個執行緒訪問某乙個類 物件或方法時 這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的。public class mythread extends thread public static void main string args 結果如下 t1正在執行 4 t1正在執行...
java 多執行緒 之 Excutor
excutor介面 提供了一種將任務提交和任務執行機制相分離的方法 excutorservice介面 提供了excutor的管理介面,以及可為跟蹤乙個或多個非同步任務狀態而生成future的方法 scheduledexcutorservice介面 提供了可以安排在給定的延遲後執行或定時執行的命令 方...