Java多線程學(xué)習(xí):Future、Callable

Java多線程編程:Callable、Future和FutureTask淺析(多線程編程之四)

????最近在寫清結(jié)算文件前置的相關(guān)代碼時,考慮使用多線程機(jī)制來提高效率,所以深入了解了一下關(guān)于Future和Callable的相關(guān)知識。一般我們使用多線程很多是實現(xiàn)Runnable接口,但Runnable接口的run方法是無返回值的。如果我們需要得到線程的返回結(jié)果,那么就可以使用Callable接口了。清潔算的第三方文件前置剛好符合這種情況:比如支付寶前置,支付寶的請求是分時間段的,所以一條業(yè)務(wù)線取文件的時候是發(fā)送了多條http請求的。這時使用Future和Callable的多線程方式就能提高效率,我們寫下載任務(wù)task實現(xiàn)Callable,使用Executor.submit(task)來提交任務(wù),然后使用Future.get 方法來返回任務(wù)成功或失敗的結(jié)果,如果有任務(wù)失敗了,那么就不進(jìn)行接下來的操作,所有的下載任務(wù)成功了才進(jìn)行相關(guān)的文件合并操作。

? ? Future和Callable適用于需要得到線程的執(zhí)行結(jié)果的情況.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 平時工作中經(jīng)常碰到個各種多線程,有時候搞不清它們之間到底有什么區(qū)別,這次來個總體的總結(jié),主要是以下這些:Execu...
    一只好奇的茂閱讀 2,349評論 1 35
  • java多線程 [TOC] 創(chuàng)建線程 直接調(diào)用Thread類或Runnable類的run方法并不會 創(chuàng)建線程,只會...
    蕩輕風(fēng)閱讀 498評論 0 0
  • 這是孫偉每天一篇文章的第52天 沒看兵哥教程前自己用xmind 制作的導(dǎo)圖無任何圖標(biāo)。學(xué)習(xí)前跟學(xué)習(xí)后的差別實在忒大...
    孫偉愛學(xué)習(xí)閱讀 995評論 0 2
  • 看完山河故人,內(nèi)心頗有感觸,這種呈現(xiàn)電影的方式是沒有接觸過的,獨特的視角模糊的鏡頭、真實到不適的場景、想不真切感情...
    菜瓜成長記閱讀 306評論 0 0