中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java多線程Callable接口實現代碼示例

發布時間:2020-10-11 02:28:03 來源:腳本之家 閱讀:151 作者:于亮 欄目:編程語言

對于多線程,大家并不陌生,對于如何創建線程也是輕車熟路,對于使用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編程接口回調一般用法代碼解析等。感謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝阳县| 株洲县| 邵东县| 德江县| 大名县| 湟中县| 浠水县| 兴隆县| 宾川县| 海门市| 浪卡子县| 武城县| 阜新| 闻喜县| 项城市| 鹤庆县| 贵阳市| 江达县| 铜梁县| 玛多县| 赫章县| 喜德县| 临高县| 涪陵区| 淮南市| 凉城县| 于田县| 陕西省| 峡江县| 龙江县| 岗巴县| 临桂县| 任丘市| 德格县| 双城市| 澄江县| 阿鲁科尔沁旗| 蓬溪县| 神农架林区| 桂林市| 观塘区|