日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java FutureTask類使用案例解析

瀏覽:217日期:2022-09-02 13:07:19

FutureTask一個可取消的異步計算,FutureTask 實現了Future的基本方法,提空 start cancel 操作,可以查詢計算是否已經完成,并且可以獲取計算的結果。結果只可以在計算完成之后獲取,get方法會阻塞當計算沒有完成的時候,一旦計算已經完成,那么計算就不能再次啟動或是取消。

一個FutureTask 可以用來包裝一個 Callable 或是一個runnable對象。因為FurtureTask實現了Runnable方法,所以一個 FutureTask可以提交(submit)給一個Excutor執行(excution).

FutureTask是java 5引入的一個類,從名字可以看出來FutureTask既是一個Future,又是一個Task。

我們看下FutureTask的定義:

public class FutureTask<V> implements RunnableFuture<V> { ...}public interface RunnableFuture<V> extends Runnable, Future<V> { /** * Sets this Future to the result of its computation * unless it has been cancelled. */ void run();}

FutureTask實現了RunnableFuture接口,RunnableFuture接口是Runnable和Future的綜合體。

作為一個Future,FutureTask可以執行異步計算,可以查看異步程序是否執行完畢,并且可以開始和取消程序,并取得程序最終的執行結果。

除此之外,FutureTask還提供了一個runAndReset()的方法, 該方法可以運行task并且重置Future的狀態。

Callable和Runnable的轉換我們知道Callable是有返回值的,而Runnable是沒有返回值的。Executors提供了很多有用的方法,將Runnable轉換為Callable:

public static <T> Callable<T> callable(Runnable task, T result) { if (task == null) throw new NullPointerException(); return new RunnableAdapter<T>(task, result); }

FutureTask內部包含一個Callable,并且可以接受Callable和Runnable作為構造函數:

public FutureTask(Callable<V> callable) { if (callable == null) throw new NullPointerException(); this.callable = callable; this.state = NEW; // ensure visibility of callable } public FutureTask(Runnable runnable, V result) { this.callable = Executors.callable(runnable, result); this.state = NEW; // ensure visibility of callable }

它的內部就是調用了Executors.callable(runnable, result);方法進行轉換的。

以Runnable運行

既然是一個Runnable,那么FutureTask就可以以線程的方式執行,我們來看一個例子:

@Test public void convertRunnableToCallable() throws ExecutionException, InterruptedException { FutureTask<Integer> futureTask = new FutureTask<>(new Callable<Integer>() { @Override public Integer call() throws Exception {log.info('inside callable future task ...');return 0; } }); Thread thread= new Thread(futureTask); thread.start(); log.info(futureTask.get().toString()); }

上面例子是以單個線程來執行的,同樣我們也可以將FutureTask提交給線程池來執行:

@Test public void workWithExecutorService() throws ExecutionException, InterruptedException { FutureTask<Integer> futureTask = new FutureTask<>(new Callable<Integer>() { @Override public Integer call() throws Exception {log.info('inside futureTask');return 1; } }); ExecutorService executor = Executors.newCachedThreadPool(); executor.submit(futureTask); executor.shutdown(); log.info(futureTask.get().toString()); }

本文的例子可參考https://github.com/ddean2009/learn-java-concurrency/tree/master/futureTask

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲专区视频| 亚洲午夜av| 国产美女一区| 极品裸体白嫩激情啪啪国产精品| 国产一区二区三区不卡视频网站| 色婷婷成人网| 日本不卡一二三区黄网| 天堂俺去俺来也www久久婷婷| 亚洲在线成人| 日韩欧美美女在线观看| 午夜精品影视国产一区在线麻豆| 国产一区视频在线观看免费| 亚洲大片在线| 亚洲成人三区| 日韩精品乱码av一区二区| 国产精品99久久久久久董美香| 国产精品超碰| 91精品国产自产在线观看永久∴| 欧美日韩四区| 欧美欧美黄在线二区| 国产精品日韩精品中文字幕| 国产一区二区三区成人欧美日韩在线观看| 精品一区视频| 日韩视频免费| 国产欧美一区二区三区国产幕精品| 美腿丝袜亚洲三区| 不卡专区在线| 亚洲永久字幕| 欧美少妇精品| 亚洲精品少妇| 色婷婷精品视频| 亚洲美女91| 91看片一区| 日韩国产欧美在线播放| 国产精品99一区二区| 国产精品s色| 蜜桃视频第一区免费观看| 久久男人av| 日本一区二区三区视频在线看| 97精品国产一区二区三区 | 成人国产综合| 日本一区二区三区中文字幕| 日韩成人亚洲| 福利在线一区| 欧美在线看片| 蜜桃视频在线观看一区| 久久久久蜜桃| 国产成人久久精品一区二区三区| 亚洲日本久久| 亚洲一区区二区| 国户精品久久久久久久久久久不卡| 久久精品一区二区三区中文字幕| 国产色噜噜噜91在线精品| 亚洲色图综合| 亚洲精品午夜av福利久久蜜桃| 精品国产aⅴ| 久久av电影| 国产伦精品一区二区三区在线播放| 在线精品福利| 热久久免费视频| 午夜在线一区| 99视频+国产日韩欧美| 91精品一区二区三区综合在线爱| 国产在线视频欧美一区| 久久精品国产99国产| 国产伦精品一区二区三区千人斩| 日本成人手机在线| 国产欧美一区| 麻豆91精品视频| 久久精品欧洲| 欧美肉体xxxx裸体137大胆| 神马午夜久久| 国产亚洲精品自拍| 热久久久久久久| 亚洲另类黄色| 国产精品一区高清| 精品国产一级| 91精品啪在线观看国产18| 999国产精品视频| 99国产精品视频免费观看一公开| 99在线精品免费视频九九视| 天堂av在线一区| 久久狠狠久久| 99国产精品一区二区| 久久亚洲国产| 亚洲精品伊人| 成人片免费看| 在线看片一区| 国产中文欧美日韩在线| 夜夜嗨网站十八久久| 91欧美精品| 九九久久电影| 国产一区二区三区91| 好吊视频一区二区三区四区| 久久久久久婷| 视频精品一区二区| 久久影院资源站| 亚洲一区久久| 香蕉成人av| 蜜桃视频免费观看一区| 精品午夜久久| 蜜臀精品一区二区三区在线观看 | 欧美在线91| 欧美成人基地| 国产日韩欧美一区在线| 伊人久久大香线蕉av不卡| 国产精品多人| 亚洲精品亚洲人成在线观看| 国产在线观看www| 欧美一级网站| 久久亚洲色图| 日韩精品网站| 97国产成人高清在线观看| 国产欧美一区二区色老头| 亚洲精品系列| 首页亚洲欧美制服丝腿| 亚洲a在线视频| 久久精品国语| 久久精品成人| 亚洲不卡av不卡一区二区| 日韩av二区| 播放一区二区| 桃色一区二区| 亚洲成人不卡| av资源中文在线| 久久国产毛片| 国产高清一区二区| 欧美福利一区| 国产一区二区精品| 视频一区中文字幕国产| 午夜精品一区二区三区国产| 国产精品日韩精品在线播放| 国产成人调教视频在线观看| 欧美精品三级在线| 99久久婷婷| 日韩精品欧美| 蜜臀av免费一区二区三区| 亚洲一区日韩在线| 久久最新视频| 日韩精品中文字幕一区二区| 91精品日本| 麻豆精品在线| 日韩不卡在线| 鲁大师成人一区二区三区| 欧美自拍一区| 中文字幕高清在线播放| 国产在线欧美| 亚洲精选久久| 久久久久久夜| 在线亚洲一区| 精品中文字幕一区二区三区四区| 久久精品亚洲人成影院| 久久国产高清| 国产欧美午夜| 亚洲成人不卡| 欧美一级二级三级视频| 99久久激情| 国产福利一区二区三区在线播放| 桃色一区二区| 国产精品亚洲二区| 激情婷婷欧美| 久久精品亚洲| 亚洲精选91| 久久久天天操| 国产精品成人一区二区网站软件| 欧美特黄a级高清免费大片a级| 国产欧美日韩影院| 亚洲激情偷拍| 高清日韩欧美| 亚洲影视一区二区三区| 亚洲高清不卡| 久久天堂影院| 国产伦理一区| 五月激激激综合网色播| 欧美va亚洲va日韩∨a综合色| 国产精品亲子伦av一区二区三区 | 粉嫩av一区二区三区四区五区| 天堂成人国产精品一区| 日韩高清中文字幕一区二区| 欧美精品三级在线| 蜜臀国产一区二区三区在线播放| 久久中文字幕二区| 国产成人免费| 欧美国产免费| 国产欧美日韩精品一区二区免费 | 久久精品亚洲人成影院| 国产一区二区三区天码| 免费视频一区二区三区在线观看 | 99re国产精品| 精品日韩毛片| 欧美aa在线观看| 国产欧美日韩精品高清二区综合区| 蜜臀av国产精品久久久久| 国产农村妇女精品一区二区| 日韩欧美三级| 久久裸体视频| 亚洲午夜精品久久久久久app| 国产综合精品| 视频一区欧美精品| 亚洲一级在线|