摘要:對象實際上屬于框架的功能類,接口和接口類似,但是提供了比更加強大的功能,主要表現為一下點可以在任務結束的時候提供一個返回值,無法提供這個功能。中的方法可以拋出異常,而不能。
Callable 對象實際上屬于Executor框架的功能類,callable接口和runable接口類似,但是提供了比runnable更加強大的功能,主要表現為一下3點:
1 callable可以在任務結束的時候提供一個返回值,runnable無法提供這個功能。
2 callable中的call()方法可以拋出異常,而runnable不能。
3 運行callable可以拿到一個future對象,而future對象表示異步計算的結果,它提供了檢查運算是否結束的方法,由于線程屬于異步計算模型,所以無法從其他線程中得到方法的返回值,在這種情況之下,就可以使用future來監視目標線程調用call方法的情況,當調用future的get方法以獲取結果時,當前線程就會被阻塞,直到call方法結束返回結果。
public class MyCallBack {
public static void main ( String[] args ) {
ExecutorService threadPool = Executors.newSingleThreadExecutor(); // 啟動線程 FuturestringFuture = threadPool.submit( new Callable< String >( ) { @Override public String call ( ) throws Exception { return "nihao"; } } ); try { System.out.println( stringFuture.get() ); } catch ( InterruptedException e ) { e.printStackTrace( ); } catch ( ExecutionException e ) { e.printStackTrace( ); }
}
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75155.html
摘要:多線程基礎基本概念進程所謂進程就是運行在操作系統的一個任務,進程是計算機任務調度的一個單位,操作系統在啟動一個程序的時候,會為其創建一個進程,就是一個進程。代碼就不做過多解釋了,沒有代碼搞個毛的多線程。運行狀態拿到的線程開始執行。 多線程基礎 基本概念 進程 所謂進程就是運行在操作系統的一個任務,進程是計算機任務調度的一個單位,操作系統在啟動一個程序的時候,會為其創建一個進程,JVM就...
摘要:一個進程中是可以有多個線程的,這個應用程序也可以稱之為多線程程序。也就是說線程創建并執行需要給定線程要執行的任務。接口對線程對象和線程任務進行解耦。另外,通過適當的調整線程中的線程數目可以防止出現資源不足的情況。 01進程概念 *A:進程概念 *a:進程:進程指正在運行的程序。確切的來說,當一個程序進入內存運行, 即變成一個進程,進程是處于運行過程中的程序,并且具有一定獨...
摘要:多線程的實現用多線程只有一個目的更好的利用資源燒水的例子當洗杯子花分鐘線程要停分鐘等待返回結果才能進行后續的燒水操作,新開一個線程執行洗杯子操作。指在并發的情況之下,該代碼經過多線程使用,線程的調度順序不影響任何結果。 Java多線程的實現 用多線程只有一個目的:更好的利用cpu資源.燒水的例子.(當洗杯子花5分鐘,線程要停5分鐘等待返回結果才能進行后續的燒水操作,新開一個線程執行洗杯...
摘要:前言前段時間寫過一篇線程池沒你想的那么簡單,和大家一起擼了一個基本的線程池,具備線程池基本調度功能。線程池自動擴容縮容。回調以上就是線程池的構造函數以及接口的定義。所以我們在使用線程池時,其中的任務一定要做好異常處理。線程異常捕獲的重要性。 showImg(https://segmentfault.com/img/remote/1460000019403163?w=1904&h=108...
閱讀 2675·2023-04-25 18:10
閱讀 1616·2019-08-30 15:53
閱讀 2806·2019-08-30 13:10
閱讀 3225·2019-08-29 18:40
閱讀 1133·2019-08-23 18:31
閱讀 1206·2019-08-23 16:49
閱讀 3407·2019-08-23 16:07
閱讀 882·2019-08-23 15:27