<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java future

    文檔

    java future

    Future代表一個異步計算的結果,它提供了一些方法來讓調用者檢測異步過程是否完成、取得異步計算的結果、取消正在執行的異步任務。
    推薦度:
    導讀Future代表一個異步計算的結果,它提供了一些方法來讓調用者檢測異步過程是否完成、取得異步計算的結果、取消正在執行的異步任務。

    很多朋友都想知道java future是什么,下面就一起來了解一下吧~

    Future代表一個異步計算的結果,并且它提供一些方法來讓調用者檢測異步過程是否完成,或者取得異步計算的結果,或者取消正在執行的異步任務。

    public?class?Test?{
    ????private?static?ExecutorService?executorService?=?Executors.newSingleThreadExecutor();
    
    
    ????public?static?void?main(String[]args){
    ????????System.out.println("hello?world");
    
    ????????Futurefuture?=?calcute(9);
    ????????while?(!future.isDone()){
    ????????????try?{
    ????????????????Thread.sleep(100);
    ????????????}?catch?(InterruptedException?e)?{
    ????????????????e.printStackTrace();
    ????????????}?finally?{
    ????????????????System.out.println("正在執行");
    ????????????}
    ????????}
    ????????try?{
    ????????????int?result?=?future.get();
    ????????????System.out.println("result?=?"?+?result);
    ????????}?catch?(ExecutionException?e)?{
    ????????????e.printStackTrace();
    ????????}?catch?(InterruptedException?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????}
    ????
    ????public?static?Futurecalcute(Integer?i)?{
    ????????return?executorService.submit(()?->?{
    ????????????Thread.sleep(1000);
    ????????????System.out.println("return?future?for?"?+?i);
    ????????????return?i?*i;
    ????????});
    ????}}

    一個簡單Future使用用例寫完,使用線程池+Callback+Future,完成了一個簡單的計算操作。

    Future是一個接口,先看一下內部方法:

    public?interface?Future?{
    ????boolean?cancel(boolean?var1);
    
    ????boolean?isCancelled();
    
    ????boolean?isDone();
    
    ????V?get()?throws?ExecutionException,?InterruptedException;
    
    ????V?get(long?var1,?TimeUnit?var3)?throws?ExecutionException,?InterruptedException,?TimeoutException;}

    get()函數是返回計算結果,注意get會同步操作,沒有返回結果前,會阻塞線程。get還有一個重載函數get(long var1, TimeUnit var3),第一個參數是時長,第二個是單位。表示在多少時長內獲取結果,如果仍未返回,則拋出異常TimeoutException。

    try{
    ????int?result2?=?future2.get(1000,?TimeUnit.MILLISECONDS);}?catch(TimeoutException?e)?{
    ????e.printStackTrace();}

    cancel(boolean) 表示是否取消該future,

    不能在調用cancel(true)/cancel(false)后,調用get()函數,否則會拋出異常CancellationException

    isCancelled()函數是判斷該future是否已取消

    isDone()函數是判斷該future是否已完成

    isDone()函數是實時狀態讀取,不會阻塞線程。

    Callback

    Callback 是一個接口,內部只有一個函數

    @FunctionalInterfacepublic?interface?Callable?{
    ????V?call()?throws?Exception;}

    以上就是小編今天的分享,希望可以幫到大家。

    文檔

    java future

    Future代表一個異步計算的結果,它提供了一些方法來讓調用者檢測異步過程是否完成、取得異步計算的結果、取消正在執行的異步任務。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java generator java enhancer java generic java enterprise java environment java epoll java error java escape java event java exchange java execute 微信群怎么找 怎么導出微信聊天記錄 蘋果手機怎么恢復出廠設置 qq怎么清理緩存和垃圾清理 朋友圈怎么轉發 微信分組怎么刪除 兩個excel如何獨立顯示 excel怎么排序 計算機管理怎么打開 java encapsulation java empty java email java ehcache java echarts java formatter java ecc加密 java fork java foreach循環 java ear java flume java dynamic java dto java drools java flink java dowhile java flatmap java findfirst java fileinputstream java file.exists()
    Top 第一福利永久视频精品| 久久精品国产免费观看三人同眠| .精品久久久麻豆国产精品| 久久精品国产亚洲精品| 亚洲精品乱码久久久久蜜桃| 国产成人精品一区二区三区免费| 国产免费久久精品久久久| 1204国产成人精品视频| 久久精品国产亚洲Aⅴ香蕉| 高清国产一级精品毛片基地| 97久久精品国产成人影院| 国产在线国偷精品免费看| 国产精品电影一区二区三区| 精品深夜AV无码一区二区| 亚洲日韩精品A∨片无码| 尤物TV国产精品看片在线| 国产精品久线观看视频| 久久亚洲私人国产精品| 日日噜噜噜噜夜夜爽亚洲精品| 国产精品午夜电影| 日韩精品人妻一区二区三区四区| 久久久999久久久精品| 国产成人麻豆亚洲综合无码精品| 国产精品国产三级国快看| 97精品一区二区视频在线观看 | 91天堂素人精品系列网站| 自拍偷自拍亚洲精品被多人伦好爽| 四虎国产精品免费久久影院| 一本色道久久88亚洲精品综合| 久久国产精品无码一区二区三区| 在线成人精品国产区免费| 国产精品极品美女自在线观看免费| 国产麻传媒精品国产AV| 亚洲日韩一区精品射精| 国产精品久久国产精品99盘| 欧洲精品色在线观看| 久久老子午夜精品无码怎么打| 99久久免费国产精品热| 精品无码久久久久久久久久| 四虎国产精品永免费| 国产精品黄页在线播放免费|