国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java并發(fā)編程:Callable、Future和FutureTask

這篇具有很好參考價(jià)值的文章主要介紹了Java并發(fā)編程:Callable、Future和FutureTask。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

  在前面的文章中我們講述了創(chuàng)建線(xiàn)程的2種方式,一種是直接繼承Thread,另外一種就是實(shí)現(xiàn)Runnable接口。

  這2種方式都有一個(gè)缺陷就是:在執(zhí)行完任務(wù)之后無(wú)法獲取執(zhí)行結(jié)果。

  如果需要獲取執(zhí)行結(jié)果,就必須通過(guò)共享變量或者使用線(xiàn)程通信的方式來(lái)達(dá)到效果,這樣使用起來(lái)就比較麻煩。

  而自從Java 1.5開(kāi)始,就提供了CallableFuture,通過(guò)它們可以在任務(wù)執(zhí)行完畢之后得到任務(wù)執(zhí)行結(jié)果。

  今天我們就來(lái)討論一下Callable、FutureFutureTask三個(gè)類(lèi)的使用方法。以下是本文的目錄大綱:

  一.CallableRunnable

  二.Future

  三.FutureTask

  四.使用示例

  先說(shuō)一下java.lang.Runnable吧,它是一個(gè)接口,在它里面只聲明了一個(gè)run()方法:

public interface Runnable {
    public abstract void run();
}

 由于run()方法返回值為void類(lèi)型,所以在執(zhí)行完任務(wù)之后無(wú)法返回任何結(jié)果。

  Callable位于java.util.concurrent包下,它也是一個(gè)接口,在它里面也只聲明了一個(gè)方法,只不過(guò)這個(gè)方法叫做call()文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-641249.html

到了這里,關(guān)于Java并發(fā)編程:Callable、Future和FutureTask的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 并發(fā)編程之五FutureTask

    futureTask實(shí)現(xiàn)了Runnable, Future接口,F(xiàn)uture接口有如下定義: 示例: ? ? 示例1:取消,不通知任務(wù)線(xiàn)程中斷 執(zhí)行日志: 11:53:58.340 [pool-1-thread-1] DEBUG o.example.concurrent.FutureTaskTest - futureTask start 11:53:58.649 [pool-1-thread-1] DEBUG o.example.concurrent.FutureTaskTest - futureTask end 示例2:取消并通知任

    2023年04月15日
    瀏覽(19)
  • 并發(fā)編程-FutureTask解析

    Future對(duì)象大家都不陌生,是JDK1.5提供的接口,是用來(lái)以阻塞的方式獲取線(xiàn)程異步執(zhí)行完的結(jié)果。 在Java中想要通過(guò)線(xiàn)程執(zhí)行一個(gè)任務(wù),離不開(kāi)Runnable與Callable這兩個(gè)接口。 Runnable與Callable的區(qū)別在于,Runnable接口只有一個(gè)run方法,該方法用來(lái)執(zhí)行邏輯,但是并沒(méi)有返回值;而Ca

    2024年02月15日
    瀏覽(17)
  • JUC并發(fā)編程學(xué)習(xí)筆記(六)Callable(簡(jiǎn)單)

    JUC并發(fā)編程學(xué)習(xí)筆記(六)Callable(簡(jiǎn)單)

    callable接口和runnable接口類(lèi)似,都是為了執(zhí)行另外一條線(xiàn)程而設(shè)計(jì)的,區(qū)別是Runnable不會(huì)返回結(jié)果也不會(huì)拋出異常。 1、可以有返回值 2、可以?huà)伋霎惓?3、方法不同;run()/call(); Runnable 實(shí)現(xiàn)Runnable接口,重寫(xiě)run方法,無(wú)返回值 Callable 實(shí)現(xiàn)Callable接口,重寫(xiě)call方法,有返回值,可

    2024年02月06日
    瀏覽(24)
  • JUC-線(xiàn)程Callable使用與FutureTask源碼閱讀

    JUC-線(xiàn)程Callable使用與FutureTask源碼閱讀

    Callable簡(jiǎn)單使用 帶返回值的線(xiàn)程(實(shí)現(xiàn)implements Callable返回值類(lèi)型),使用示例 FutureTask面向?qū)ο蠓绞綄W(xué)習(xí) 為了定義這樣一個(gè)事物“有返回結(jié)果”,暫且稱(chēng)之為RunnableFuture。它集合了Runnable和Future兩種事物 (其中Future接口 表示了一個(gè)任務(wù)的生命周期,是一個(gè)可取消的異步運(yùn)算,可

    2024年02月04日
    瀏覽(19)
  • JUC并發(fā)編程-集合不安全情況以及Callable線(xiàn)程創(chuàng)建方式

    JUC并發(fā)編程-集合不安全情況以及Callable線(xiàn)程創(chuàng)建方式

    1)List 不安全 ArrayList 在并發(fā)情況下是不安全的 解決方案 : 1.Vector 2.Collections.synchonizedList() 3. CopyOnWriteArrayList 核心思想 是,如果有 多個(gè)調(diào)用者(Callers)同時(shí)要求相同的資源 (如內(nèi)存或者是磁盤(pán)上的數(shù)據(jù)存儲(chǔ)),他們 會(huì)共同獲取相同的指針指向相同的資源 , 直到某個(gè)調(diào)用者

    2024年01月23日
    瀏覽(39)
  • C++ 并發(fā)編程 | future與async

    async 函數(shù)接受兩種不同的啟動(dòng)策略,這些策略在 std::launch 枚舉中定義,如下: std::launch::defered :這種策略意味著任務(wù)將在調(diào)用 future::get() 或 future::wait 函數(shù)時(shí)延遲執(zhí)行,也就是任務(wù)將在需要結(jié)果時(shí) 同步 執(zhí)行 std::launch::async :任務(wù)在單獨(dú)一個(gè)線(xiàn)程上 異步 執(zhí)行 默認(rèn)情況下 asy

    2024年01月24日
    瀏覽(26)
  • Callable接口和Future接口

    創(chuàng)建線(xiàn)程的方式 1.繼承Thread類(lèi)2.實(shí)現(xiàn)Runnable接口3.Callable接口4.線(xiàn)程池方式 Callable接口 在繼承Thread類(lèi)和實(shí)現(xiàn)Runnable接口的方式創(chuàng)建線(xiàn)程時(shí),線(xiàn)程執(zhí)行的run方法中,返回值是void,即無(wú)法返回線(xiàn)程的執(zhí)行結(jié)果,為了支持該功能,java提供了Callable接口。 Callable和Runnable接口的區(qū)別 1.Ca

    2024年02月05日
    瀏覽(19)
  • JUC并發(fā)編程——集合類(lèi)不安全及Callable(基于狂神說(shuō)的學(xué)習(xí)筆記)

    List不安全 CopyOnWriteArrayList與vector對(duì)比,以下來(lái)自CSDN智能助手的回答: Java中的CopyOnWriteArrayList和Vector都是線(xiàn)程安全的動(dòng)態(tài)數(shù)組,可以在多線(xiàn)程環(huán)境下使用。 CopyOnWriteArrayList使用了一種特殊的寫(xiě)時(shí)復(fù)制機(jī)制,它在對(duì)數(shù)組進(jìn)行修改時(shí),會(huì)創(chuàng)建一個(gè)新的副本,而不是直接在原數(shù)組上

    2024年02月07日
    瀏覽(32)
  • 【Java并發(fā)】聊聊Future如何提升商品查詢(xún)速度

    【Java并發(fā)】聊聊Future如何提升商品查詢(xún)速度

    java中可以通過(guò)new thread、實(shí)現(xiàn)runnable來(lái)進(jìn)行實(shí)現(xiàn)線(xiàn)程。但是唯一的缺點(diǎn)是沒(méi)有返回值、以及拋出異常,而callable就可以解決這個(gè)問(wèn)題。通過(guò)配合使用futuretask來(lái)進(jìn)行使用。 并且Future提供了對(duì)任務(wù)的操作,取消,查詢(xún)是否完成,獲取結(jié)果。 FutureTask核心代碼 基本屬性 任務(wù) 當(dāng)線(xiàn)程

    2024年01月25日
    瀏覽(16)
  • 【java】開(kāi)發(fā)——《并發(fā)編程》

    【java】開(kāi)發(fā)——《并發(fā)編程》

    目錄 一.jmm 二.并發(fā)了什么 1.只有一個(gè)核(單核)并發(fā)還有沒(méi)有意義 2.單核,還有什么可見(jiàn)性問(wèn)題 3.并發(fā)和并行 三.volitaile 1.變量的可見(jiàn)性問(wèn)題 2.原因是什么 3.本次修改的變量直接刷到主內(nèi)存 4.聲明其他內(nèi)存對(duì)于這個(gè)地址的緩存無(wú)效 四.happens-befo 1.順序性問(wèn)題 五.volitaile+cas 1.原

    2024年02月22日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包