java 建立線程的三種方法Callable,Runnable,Thread比較及用法

來源:互聯網
上載者:User

標籤:執行   new t   run   取消   構造   互動   方法   throw   xtend   

轉自:http://www.chinaitlab.com/Java/line/942440.html  

編寫多線程程式是為了實現多任務的並發執行,從而能夠更好地與使用者互動。一般有三種方法,Thread,Runnable,Callable.

  Runnable和Callable的區別是,

  (1)Callable規定的方法是call(),Runnable規定的方法是run()。

  (2)Callable的任務執行後可傳回值,而Runnable的任務是不能傳回值得

  (3)call方法可以拋出異常,run方法不可以

  (4)運行Callable任務可以拿到一個Future對象,表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過Future對象可以瞭解任務執行情況,可取消任務的執行,還可擷取執行結果。

  1、通過實現Runnable介面來建立Thread線程:

  步驟1:建立實現Runnable介面的類:

  class SomeRunnable implements Runnable

  {

  public void run()

  {

  //do something here

  }

  }

  步驟2:建立一個類對象:

  Runnable oneRunnable = new SomeRunnable();

  步驟3:由Runnable建立一個Thread對象:

  Thread oneThread = new Thread(oneRunnable);

  步驟4:啟動線程:

  oneThread.start();

  至此,一個線程就建立完成了。

  注釋:線程的執行流程很簡單,當執行代碼oneThread.start();時,就會執行oneRunnable對象中的void run();方法,

  該方法執行完成後,線程就消亡了。

  2、與方法1類似,通過實現Callable介面來建立Thread線程:其中,Callable介面(也只有一個方法)定義如下:

  public interface Callable<V>

  {

  V call() throws Exception;

  }

  步驟1:建立實現Callable介面的類SomeCallable<Integer>(略);

  步驟2:建立一個類對象:

  Callable<Integer> oneCallable = new SomeCallable<Integer>();

  步驟3:由Callable<Integer>建立一個FutureTask<Integer>對象:

  FutureTask<Integer> oneTask = new FutureTask<Integer>(oneCallable);

  注釋:FutureTask<Integer>是一個封裝器,它通過接受Callable<Integer>來建立,它同時實現了Future和Runnable介面。

  步驟4:由FutureTask<Integer>建立一個Thread對象:

  Thread oneThread = new Thread(oneTask);

  步驟5:啟動線程:

  oneThread.start();

  至此,一個線程就建立完成了。

  3、通過繼承Thread類來建立一個線程:

  步驟1:定義一個繼承Thread類的子類:

  class SomeThead extends Thraad

  {

  public void run()

  {

  //do something here

  }

  }

  步驟2:構造子類的一個對象:

  SomeThread oneThread = new SomeThread();

  步驟3:啟動線程:

  oneThread.start();

  至此,一個線程就建立完成了

java 建立線程的三種方法Callable,Runnable,Thread比較及用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.