<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            java自定義任務類定時執行任務

            時間:2025-10-18 20:05:30 java語言

            java自定義任務類定時執行任務范本

              Callable 和 Future接口

              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 {

              /pic/p>

              private int flag = 0;

              public MyCallableClass(int flag) {

              this.flag = flag;

              }

              public String call() throws Exception {

              if (this.flag == 0) {

              /pic/p>

              return "flag = 0";

              }

              if (this.flag == 1) {

              /pic/p>

              try {

              while (true) {

              System.out.println("looping......");

              Thread.sleep(2000);

              }

              } catch (InterruptedException e) {

              System.out.println("Interrupted");

              }

              return "false";

              } else {

              /pic/p>

              throw new Exception("Bad flag value!");

              }

              }

              }

              public static void main(String[] args) {

              /pic/p>

              MyCallableClass task1 = new MyCallableClass(0);

              MyCallableClass task2 = new MyCallableClass(1);

              MyCallableClass task3 = new MyCallableClass(2);

              /pic/p>

              ExecutorService es = Executors.newFixedThreadPool(3);

              try {

              /pic/p>

              /pic/p>

              Future future1 = es.submit(task1);

              /pic/p>

              System.out.println("task1: " + future1.get());

              Future future2 = es.submit(task2);

              /pic/p>

              Thread.sleep(5000);

              System.out.println("task2 cancel: " + future2.cancel(true));

              /pic/p>

              /pic/p>

              Future future3 = es.submit(task3);

              System.out.println("task3: " + future3.get());

              } catch (Exception e) {

              System.out.println(e.toString());

              }

              /pic/p>

              es.shutdownNow();

              }

              }

            【java自定義任務類定時執行任務】相關文章:

            Java自定義簡單標簽實例01-12

            Java的類02-22

            Java自定義范型的應用技巧03-06

            PHP實現定時任務的幾種方式和詳解08-11

            java類的構成09-27

            Java的類常識11-03

            java注冊成windows服務程序及簡單java定時關機的程序代碼02-03

            Java import以及Java類的搜索路徑12-24

            Java類加載器類介紹03-05

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院