国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java自定義任務類定時執行任務示例 callable和future接口使用方法

java自定義任務類定時執行任務示例 callable和future接口使用方法

2019-10-31 15:00java教程網 JAVA教程

Callable是類似于Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務

Callable是類似于Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務。

Callable和Runnable有幾點不同: 
(1)Callable規定的方法是call(),而Runnable規定的方法是run().
(2)Callable的任務執行后可返回值,而Runnable的任務是不能返回值的。 
(3)call()方法可拋出異常,而run()方法是不能拋出異常的。
(4)運行Callable任務可拿到一個Future對象, Future表示異步計算的結果。

它提供了檢查計算是否完成的方法,以等待計算的完成,并檢索計算的結果。
通過Future對象可了解任務執行情況,可取消任務的執行,還可獲取任務執行的結果。

 

復制代碼代碼如下:


package com.yao;

 

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class CallableAndFuture {

 /**
  * 自定義一個任務類,實現Callable接口
  */
 public static class MyCallableClass implements Callable {
  // 標志位
  private int flag = 0;

  public MyCallableClass(int flag) {
   this.flag = flag;
  }

  public String call() throws Exception {
   if (this.flag == 0) {
    // 如果flag的值為0,則立即返回
    return "flag = 0";
   }
   if (this.flag == 1) {
    // 如果flag的值為1,做一個無限循環
    try {
     while (true) {
      System.out.println("looping......");
      Thread.sleep(2000);
     }
    } catch (InterruptedException e) {
     System.out.println("Interrupted");
    }
    return "false";
   } else {
    // falg不為0或者1,則拋出異常
    throw new Exception("Bad flag value!");
   }
  }
 }

 public static void main(String[] args) {
  // 定義3個Callable類型的任務
  MyCallableClass task1 = new MyCallableClass(0);
  MyCallableClass task2 = new MyCallableClass(1);
  MyCallableClass task3 = new MyCallableClass(2);

  // 創建一個執行任務的服務
  ExecutorService es = Executors.newFixedThreadPool(3);
  try {
   // 提交并執行任務,任務啟動時返回了一個Future對象,
   // 如果想得到任務執行的結果或者是異常可對這個Future對象進行操作
   Future future1 = es.submit(task1);
   // 獲得第一個任務的結果,如果調用get方法,當前線程會等待任務執行完畢后才往下執行
   System.out.println("task1: " + future1.get());

   Future future2 = es.submit(task2);
   // 等待5秒后,再停止第二個任務。因為第二個任務進行的是無限循環
   Thread.sleep(5000);
   System.out.println("task2 cancel: " + future2.cancel(true));

   // 獲取第三個任務的輸出,因為執行第三個任務會引起異常
   // 所以下面的語句將引起異常的拋出
   Future future3 = es.submit(task3);
   System.out.println("task3: " + future3.get());
  } catch (Exception e) {
   System.out.println(e.toString());
  }
  // 停止任務執行服務
  es.shutdownNow();
 }
}

 

 

延伸 · 閱讀

精彩推薦
  • JAVA教程Java如何利用Mybatis進行數據權限控制詳解

    Java如何利用Mybatis進行數據權限控制詳解

    這篇文章主要介紹了Java如何利用Mybatis進行數據權限控制詳解,數據權限控制最終的效果是會要求在同一個數據請求方法中,根據不同的權限返回不同的數據...

    陳晨_軟件五千言3852019-06-27
  • JAVA教程解析Tomcat 6、7在EL表達式解析時存在的一個Bug

    解析Tomcat 6、7在EL表達式解析時存在的一個Bug

    這篇文章主要是對Tomcat 6、7在EL表達式解析時存在的一個Bug進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助 ...

    java技術網4332019-10-23
  • JAVA教程教你如何編寫簡單的網絡爬蟲

    教你如何編寫簡單的網絡爬蟲

    實際的爬蟲是從一系列的種子鏈接開始。種子鏈接是起始節點,種子頁面的超鏈接指向的頁面是子節點(中間節點),對于非html文檔,如excel等,不能從中...

    java之家4582019-10-16
  • JAVA教程如何利用NetworkInterface獲取服務器MAC地址

    如何利用NetworkInterface獲取服務器MAC地址

    今天介紹一種通用的跨平臺的操作方式,那就是JDK自帶的NetworkInterface接口,該接口在JDK1.4已經出現,但是功能比較少,JDK1.6之后新增了不少新功能,比較不...

    java教程網1312019-10-11
  • JAVA教程java使用Jsoup連接網站超時的解決方法

    java使用Jsoup連接網站超時的解決方法

    jsoup是一個非常好的解析網頁的包,用java開發的,提供了類似DOM,CSS選擇器的方式來查找和提取文檔中的內容,提取文檔內容時會出現超時的情況,解決方法...

    java教程網3072019-10-21
  • JAVA教程Java代碼實現矩形覆蓋實例

    Java代碼實現矩形覆蓋實例

    這篇文章主要介紹了Java代碼實現矩形覆蓋實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考...

    Maxinxx4622019-06-27
  • JAVA教程了解Java多線程的可見性與有序性

    了解Java多線程的可見性與有序性

    這篇文章主要介紹了了解Java多線程的可見性與有序性,在Java內存模型中,允許編譯器和處理器對指令進行重排序,但是重排序過程不會影響到單線程程序...

    mseddl3882019-06-28
  • JAVA教程Java 添加Word目錄的2種方法示例代碼詳解

    Java 添加Word目錄的2種方法示例代碼詳解

    目錄是一種能夠快速、有效地幫助讀者了解文檔或書籍主要內容的方式。這篇文章主要介紹了Java 添加Word目錄的2種方法 ,需要的朋友可以參考下...

    E-iceblue2792019-07-04
主站蜘蛛池模板: 亚洲一级片av | 国产一区二区成人 | 亚洲毛片a | 久久久久久综合 | 中文在线一区二区 | 精品色| 亚洲成人三级 | 中文字幕亚洲一区二区三区 | 亚洲欧洲视频 | 亚洲三级av| 日韩超碰在线观看 | 久久社区| 黄视频在线 | 91一区二区 | 国产99在线 | 国产黄大片 | 国产在线国产 | 日韩一区二区三区视频 | 午夜激情在线免费观看 | 国产精品视频 | 一区视频在线 | 黄色片免费| 久久久精品网 | 日韩av免费播放 | 伊人色私人影院蜜桃va | 这里只有精品免费 | 欧美精品一区二区三区在线播放 | 欧美顶级毛片在线播放 | 自拍视频在线观看 | 国产精品久久久久免费a∨ 欧美黄色精品 | 日本 欧美 国产 | 亚洲国产精品一区二区三区 | 一级在线 | 99精品99 | 色av成人| 一区二区三区在线 | 国产精品久久久久久久久晋中 | 欧美国产日韩一区 | 日韩欧美国产一区二区 | 欧美日韩在线播放 | 亚洲成熟少妇视频在线观看 |