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

溫馨提示×

溫馨提示×

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

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

Java如何實現Callable接口

發布時間:2020-07-29 10:15:53 來源:億速云 閱讀:192 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了Java如何實現Callable接口,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

代碼如下

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @author lzq
 * @data 2020/4/30 0030 - 下午 4:02
 */
public class Test2 {
  public static void main(String[] args) throws ExecutionException, InterruptedException {
    MyThread thread=new MyThread();
    FutureTask task = new FutureTask(thread);
    new Thread(task,"a").start();
    new Thread(task,"b").start();
    System.out.println(task.get());
  }
 }
class MyThread implements Callable<String> {

  @Override
  public String call() {
    System.out.println("實現callable");
    return "得到返回值";
  }
}

  執行結果為:

        Java如何實現Callable接口

  上面是使用Callable接口簡單實現多線程,使用這個接口要使用FutrueTask類作為簡單的適配類,因為Thread構造方法只能接受Runnable接口參數,下面源碼中看出FutrueTask的對象為什么也能作為Runnable型參數傳給Thread構造方法

Java如何實現Callable接口

  再分析一下結果,可以看到明明啟動了a,b兩個線程,但是只輸出了一個線程的結果,這是因為運行的結果會被緩存,使得線程的執行效率變高。還有一點就是獲取線程返回值的get方法可能會產生阻塞,一般放在最后或者使用異步通信來處理。

以上就是關于Java如何實現Callable接口的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

南和县| 文安县| 玛曲县| 溧水县| 巴南区| 定陶县| 营口市| 马山县| 徐水县| 兖州市| 盘锦市| 平原县| 西和县| 定南县| 凭祥市| 子洲县| 云龙县| 同仁县| 小金县| 墨脱县| 大同市| 吉木萨尔县| 疏勒县| 黔江区| 四会市| 稷山县| 都匀市| 英德市| 花垣县| 开远市| 湖口县| 阜新市| 渭南市| 睢宁县| 井研县| 龙江县| 大英县| 台东市| 洮南市| 黎平县| 陕西省|