您好,登錄后才能下訂單哦!
對于多線程,大家并不陌生,對于如何創建線程也是輕車熟路,對于使用new thread和實現runable接口的方式,不再多說。這篇博文我們介紹第三種:實現Callable接口。
Callable接口
接口定義:
@FunctionalInterface public interface Callable<V> { V call() throws Exception; }
從Callable的定義可以看出:
Callable接口類似于Runnable,兩者都是為那些其實例可能被另一個線程執行的類設計的,方法可以有返回值,并且可以拋出異常。但是Runnable不行。
Callable需要依賴FutureTask,用于接收運算結果。一個產生結果,一個拿到結果。FutureTask是Future接口的實現類,也可以用作閉鎖。
簡單實例
計算0到100相加,返回結果。
public class TestCallable { public static void main(String[] args) { CallableThreadDemo ctd = new CallableThreadDemo(); //1.執行Callable方式,需要FutureTask實現類的支持,用于接收運算結果 FutureTask<Integer> result = new FutureTask<Integer>(ctd); new Thread(result).start(); //2.接收線程運算后的結果 try { Integer sum = result.get(); //FutureTask 可用于閉鎖 System.out.println(sum); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } } } class CallableThreadDemo implements Callable<Integer>{ @Override public Integer call() throws Exception { int sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } return sum; } }
總結
Callable接口其實特別簡單,在多線程環境中,返回結果。
希望本文所述對大家了解多線程及callable接口有所幫助。感興趣的朋友可以繼續參閱本站:淺談Java面向接口編程、Java編程接口回調一般用法代碼解析等。感謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。