更新時間:2022-06-20 10:25:26 來源:動力節點 瀏覽1867次
動力節點小編給大家舉一個如何返回線程值的示例。簡單描述示例的步驟:
我們已經實現了兩個Java類,RetDouble它們RetInt都實現了Callable,第一個使用作為參數 a Double,第二個使用作為參數 an Integer。它們都覆蓋了call()Callable 的方法,第一個返回一個Double值,而第二個返回一個Integer.
我們使用Executors 的API方法創建一個ExecutorService。該方法返回一個線程池,該線程池重用在共享無界隊列上運行的固定數量的線程。newFixedThreadPool(int nThreads)
ExecutorService對兩個 Callables 使用其 API 方法,以便提交一個返回值的任務以供執行,并返回兩個代表任務未決結果的 Future對象。submit(Callable task)
為了獲取 Future 對象的值,我們可以使用它們的get()API 方法,在必要時等待計算完成,然后檢索結果。
最后 ExecutorService 使用其shutdown()API 方法啟動有序關閉,其中執行之前提交的任務,但不會接受新任務。
讓我們看一下下面的代碼片段:
包 com.javacodegeeks.snippets.core;
導入 java.util.concurrent.Callable;
導入 java.util.concurrent.ExecutorService;
導入 java.util.concurrent.Executors;
導入 java.util.concurrent.Future;
公共類 RetVal {
公共靜態 void main(String args[]) 拋出異常 {
ExecutorService 服務 = Executors.newFixedThreadPool(3);
Future<Double> retdouble = service.submit(new RetDouble());
Future<Integer> retInt = service.submit(new RetInt());
System.out.println(retdouble.get());
System.out.println(retInt.get());
service.shutdown();
}
}
類 RetDouble 實現 Callable<Double> {
RetDouble() {
}
@覆蓋
公共雙調用(){
返回 2.0;
}
}
類 RetInt 實現 Callable<Integer> {
RetInt() {
}
@覆蓋
公共整數調用(){
返回 1;
}
}
輸出:
2.0
1
這是一個如何在 Java 中返回 Thread 值的示例。如果大家想了解更多相關知識,可以關注一下動力節點的Java多線程編程,里面有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習