最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多線程Callable接口實(shí)現(xiàn)代碼示例

 更新時(shí)間:2017年10月20日 09:36:21   作者:于亮  
相信大家對(duì)Java編程中如何創(chuàng)建線程已經(jīng)不陌生了,這篇文章就向朋友們介紹實(shí)現(xiàn)callable接口,具體實(shí)例詳見正文。

對(duì)于多線程,大家并不陌生,對(duì)于如何創(chuàng)建線程也是輕車熟路,對(duì)于使用new thread和實(shí)現(xiàn)runable接口的方式,不再多說(shuō)。這篇博文我們介紹第三種:實(shí)現(xiàn)Callable接口。

Callable接口

接口定義:

@FunctionalInterface
public interface Callable<V> {
  V call() throws Exception;
}

從Callable的定義可以看出:

Callable接口類似于Runnable,兩者都是為那些其實(shí)例可能被另一個(gè)線程執(zhí)行的類設(shè)計(jì)的,方法可以有返回值,并且可以拋出異常。但是Runnable不行。

Callable需要依賴FutureTask,用于接收運(yùn)算結(jié)果。一個(gè)產(chǎn)生結(jié)果,一個(gè)拿到結(jié)果。FutureTask是Future接口的實(shí)現(xiàn)類,也可以用作閉鎖。

簡(jiǎn)單實(shí)例

計(jì)算0到100相加,返回結(jié)果。

public class TestCallable {
  public static void main(String[] args) {
    CallableThreadDemo ctd = new CallableThreadDemo();
    //1.執(zhí)行Callable方式,需要FutureTask實(shí)現(xiàn)類的支持,用于接收運(yùn)算結(jié)果
    FutureTask<Integer> result = new FutureTask<Integer>(ctd);
    new Thread(result).start();
    //2.接收線程運(yùn)算后的結(jié)果
    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;
  }
}

總結(jié)

Callable接口其實(shí)特別簡(jiǎn)單,在多線程環(huán)境中,返回結(jié)果。

希望本文所述對(duì)大家了解多線程及callable接口有所幫助。感興趣的朋友可以繼續(xù)參閱本站:淺談Java面向接口編程Java編程接口回調(diào)一般用法代碼解析等。感謝大家對(duì)本站的支持!

相關(guān)文章

  • java?串口工具jSerialComm示例詳解

    java?串口工具jSerialComm示例詳解

    這篇文章主要介紹了java?串口工具jSerialComm,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • nacos-discovery包名層級(jí)問(wèn)題解決

    nacos-discovery包名層級(jí)問(wèn)題解決

    這篇文章主要為大家介紹了nacos-discovery包名層級(jí)問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句的工具類

    Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句的工具類

    這篇文章主要為大家詳細(xì)介紹了如何利用Java編寫一個(gè)工具類,可以實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語(yǔ)句,感興趣的小伙伴可以了解一下
    2023-05-05
  • SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn)

    SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn)

    本文主要介紹了SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot自動(dòng)配置@EnableAutoConfiguration過(guò)程示例

    SpringBoot自動(dòng)配置@EnableAutoConfiguration過(guò)程示例

    這篇文章主要為大家介紹了SpringBoot自動(dòng)配置@EnableAutoConfiguration的過(guò)程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • JavaMail實(shí)現(xiàn)郵件發(fā)送機(jī)制

    JavaMail實(shí)現(xiàn)郵件發(fā)送機(jī)制

    這篇文章主要為大家詳細(xì)介紹了JavaMail實(shí)現(xiàn)郵件發(fā)送機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 一文帶你了解Spring中@Enable開頭注解的使用

    一文帶你了解Spring中@Enable開頭注解的使用

    前面的文章給大家介紹?Spring?的重試機(jī)制的時(shí)候有提到過(guò)?Spring?有很多?@Enable?開頭的注解,平時(shí)在使用的時(shí)候也沒(méi)有注意過(guò)為什么會(huì)有這些注解,今天就給大家介紹一下
    2022-09-09
  • Java中Spring的單例模式使用

    Java中Spring的單例模式使用

    這篇文章主要介紹了Java中Spring的單例模式使用,spring中的單例也不影響應(yīng)用并發(fā)訪問(wèn)。大多數(shù)時(shí)候客戶端都在訪問(wèn)我們應(yīng)用中的業(yè)務(wù)對(duì)象,為減少并發(fā)控制,不應(yīng)該在業(yè)務(wù)對(duì)象中設(shè)置那些容易造成出錯(cuò)的成員變量,下面一起進(jìn)入文章了解更多詳細(xì)內(nèi)容吧
    2022-01-01
  • Java中如何執(zhí)行多條shell/bat命令

    Java中如何執(zhí)行多條shell/bat命令

    這篇文章主要介紹了Java中如何執(zhí)行多條shell/bat命令的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java 中動(dòng)態(tài)代理(JDK,cglib)實(shí)例代碼

    java 中動(dòng)態(tài)代理(JDK,cglib)實(shí)例代碼

    這篇文章主要介紹了java 中動(dòng)態(tài)代理,這里介紹了JDK 動(dòng)態(tài)代理與 cglib 動(dòng)態(tài)代理的相關(guān)資料
    2017-04-04

最新評(píng)論

栾城县| 清苑县| 扶绥县| 南皮县| 天长市| 嘉禾县| 徐闻县| 蓬溪县| 团风县| 巧家县| 海丰县| 赤壁市| 普陀区| 泽库县| 丹凤县| 临朐县| 深圳市| 乌拉特前旗| 娄底市| 洞头县| 建昌县| 琼结县| 河池市| 启东市| 三亚市| 杭州市| 海原县| 吉林省| 新建县| 资中县| 米脂县| 安丘市| 尖扎县| 肥乡县| 天柱县| 临沂市| 山东省| 合阳县| 双辽市| 绥芬河市| 滕州市|