chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Callable接口介紹 Runnable和Callable的區(qū)別

454398 ? 來源:chinaunix ? 作者:zmy愛吃炸雞 ? 2020-10-16 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Callable接口:

Callable,新啟線程的一種方式,返回結(jié)果并且可能拋出異常的任務(wù),在前面的新啟線程的文章中用過,但是沒有具體講解

優(yōu)點:

可以獲取線程的執(zhí)行結(jié)果,也稱為返回值

通過與Future的結(jié)合,可以實現(xiàn)利用Future來跟蹤異步計算的結(jié)果

Runnable和Callable的區(qū)別:

Callable規(guī)定的方法是call(),Runnable規(guī)定的接口是run();

Callable的任務(wù)執(zhí)行后可返回值,而Runnable的任務(wù)是不能有返回值的;

call方法可以拋出異常,run方法不可以

運行Callable任務(wù)可以拿到一個Future對象,表示異步計算的結(jié)果,它提供了檢查是否計算完成的方法,以等待計算的完成,并檢索計算的結(jié)果,通過Future對象可以了解任務(wù)執(zhí)行情況,可以取消任務(wù)的執(zhí)行,還可以獲取執(zhí)行結(jié)果

Future接口:

Future是一個接口,代表了一個異步計算的結(jié)果,接口中的方法用來檢查計算是否完成,等待完成和得到計算結(jié)果;

當(dāng)計算完成后,只能通過get()方法得到結(jié)果,get()方法會阻塞,一直到線程的計算結(jié)果完成并返回;

如果想取消,那么調(diào)用cancel()方法,其他方法用于確定任務(wù)是正常完成還是取消了;

一旦計算完成了,那么這個計算就不能被取消

FutureTask類:

FutureTask類實現(xiàn)了RunnableFuture接口,而RunnableFuture接口是繼承了Runnable和Future接口,所以說FutureTask是一個提供異步計算結(jié)果的任務(wù);

FutureTask可以用來包裝Callable或者Runnable接口的實現(xiàn)對象,因為FutureTask實現(xiàn)了Runnable接口,所以FutureTask也可以提交給線程池

Callable,Future,FutureTask三者之間的關(guān)系:

Callable的兩種執(zhí)行方式:

1:借助FutureTask,包裝Callable接口的實現(xiàn)類,然后傳遞給Thread線程執(zhí)行


2:借助線程池來執(zhí)行


線程池這個只粘貼關(guān)鍵代碼,線程池的知識就不在這多說了,之后會具體講解

返回的Future接口的使用和FutureTask是一樣的

這個接口實現(xiàn)的線程,是有返回值的

可以說一下我之前用到的場景

是這樣的,我之前用到的一般是用于云上,或者存儲服務(wù)器下載電子文件,就是本身我一個接口就是需要查詢數(shù)據(jù)庫并,進行結(jié)果的大量計算和結(jié)果轉(zhuǎn)換的,同時還要上云上下載比較大的電子文件,所以我采用Callable配合線程池來完成云上文件的下載;
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 線程池
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    7137
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    508

    瀏覽量

    20204
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C++可調(diào)用Callable類型的總結(jié)

    自從在使用 std::thread 構(gòu)造函數(shù)過程中遇到了 Callable 類型的概念以來用到了很多關(guān)于它的使用。
    發(fā)表于 07-17 14:04 ?513次閱讀

    【資料分享】SDIO接口介紹( 有SD和SDIO區(qū)別)

    SDIO接口介紹( 有SD和SDIO區(qū)別)
    發(fā)表于 03-12 11:20

    可調(diào)用的VEE服務(wù)器,Matlab無法識別

    來回傳遞數(shù)據(jù)。我已經(jīng)使用文件讀/寫來傳遞參數(shù)。我認為問題在于Matlab而不是Callable VEE,因為VBScript / VBAThanks的建議很好-----原始消息-----來自
    發(fā)表于 09-06 13:33

    python用pyserial讀取串口錯誤類型及解決辦法

    is not callable沒有返回值正確代碼:ser = serial.Serial('COM7', 115200, 8, 'N', 1)flag = ser.is_open原因:調(diào)用屬性is_open時將其視為函數(shù),寫成 ser.is_open()。關(guān)于is_open的功能及用法,可參見python庫
    發(fā)表于 01-13 07:12

    TMS320C54x DSP Library(庫)

    DSP platform. This source-code library includes C-callable functions (ANSI-C language compatible) for general signal processing math and vec
    發(fā)表于 09-06 00:02 ?26次下載

    多線程并發(fā)處理方式

    1. 捕獲InterruptedException錯誤 請檢查下面的代碼片段: public class Task implements Runnable { private final
    發(fā)表于 09-28 15:02 ?0次下載

    各種標(biāo)準(zhǔn)接口介紹區(qū)別

    本文將重點介紹各種標(biāo)準(zhǔn)接口,并揭示它們對不同嵌入式芯片廠商的區(qū)別所在。了解基本接口可幫助設(shè)計人員優(yōu)先考慮哪些接口應(yīng)為片上。另外,雖然標(biāo)準(zhǔn)
    發(fā)表于 06-04 03:38 ?2.1w次閱讀
    各種標(biāo)準(zhǔn)<b class='flag-5'>接口</b><b class='flag-5'>介紹</b>和<b class='flag-5'>區(qū)別</b>

    USB接口、串口、并口有何區(qū)別

    本文開始介紹了USB接口的工作原理和優(yōu)點,其次詳細的介紹了串口劃分標(biāo)準(zhǔn)和并口的區(qū)別以及并口的主要特點與分類,最后闡述了USB接口、串口和并口
    發(fā)表于 03-26 14:58 ?9.8w次閱讀

    TMS320,c28xDSP中創(chuàng)建可c-callable程序集函數(shù)的簡單方法

    c-callable程序集需要理解參數(shù)傳遞的約定和環(huán)境,這是c編譯器期望的。此應(yīng)用程序報告提供了配置c編譯器以幫助解決這些問題的說明和建議。
    發(fā)表于 04-11 11:06 ?3次下載
    TMS320,c28xDSP中創(chuàng)建可c-<b class='flag-5'>callable</b>程序集函數(shù)的簡單方法

    一文解讀DP和HDMI的接口定義及區(qū)別分析

    本文首先介紹了DP接口的概念與優(yōu)勢,其次介紹了HDMI優(yōu)勢與選購技巧,最后闡述了DP接口和HDMI的區(qū)別以及分析了HDMI和DP
    發(fā)表于 04-23 09:19 ?9.3w次閱讀

    端口和接口有什么區(qū)別和聯(lián)系嗎

    本文首先介紹了端口的概念、分類及作用,其次介紹接口的概念與顯示器接口的類型,最后介紹了端口和接口
    發(fā)表于 04-23 16:54 ?6.3w次閱讀
    端口和<b class='flag-5'>接口</b>有什么<b class='flag-5'>區(qū)別</b>和聯(lián)系嗎

    像學(xué)習(xí)編程一樣學(xué)習(xí)深度學(xué)習(xí)模型開發(fā)

    前面介紹的各種基本層,除了可以add進Sequential容器串聯(lián)之外,它們本身也是callable對象,被調(diào)用之后,返回的還是callable對象。所以可以將它們視為函數(shù),通過調(diào)用的方式來進行串聯(lián)。
    的頭像 發(fā)表于 06-06 09:19 ?2970次閱讀

    DeferredResult異步請求處理 提高系統(tǒng)吞吐量的一把利器

    基礎(chǔ)準(zhǔn)備 ResponseMsg TaskService 阻塞調(diào)用 Callable異步調(diào)用 DeferredResult異步調(diào)用 后記 大家都知道,Callable和DeferredResult
    的頭像 發(fā)表于 10-10 16:55 ?1605次閱讀

    C++ invoke與function的區(qū)別在哪?

    invoke是C++17標(biāo)準(zhǔn)引入的一個函數(shù)模板,用來調(diào)用可調(diào)用對象(Callable Object,如函數(shù)指針、函數(shù)對象、成員函數(shù)指針等)并返回結(jié)果。
    的頭像 發(fā)表于 09-04 09:11 ?1090次閱讀
    C++ invoke與function的<b class='flag-5'>區(qū)別</b>在哪?

    java實現(xiàn)多線程的幾種方式

    了多種實現(xiàn)多線程的方式,本文將詳細介紹以下幾種方式: 1.繼承Thread類 2.實現(xiàn)Runnable接口 3.Callable和Future 4.線程池 5.Java 8中
    的頭像 發(fā)表于 03-14 16:55 ?1330次閱讀