欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

java語言

Java創(chuàng)建線程的三種方法比較及用法

時(shí)間:2025-02-25 21:25:09 java語言 我要投稿
  • 相關(guān)推薦

Java創(chuàng)建線程的三種方法比較及用法

  編寫多線程程序是為了實(shí)現(xiàn)多任務(wù)的并發(fā)執(zhí)行,從而能夠更好地與用戶交互。一般有三種方法,Thread,Runnable,Callable.以下是為大家分享的Java創(chuàng)建線程的三種方法比較及用法,供大家參考借鑒,歡迎瀏覽!


  Runnable和Callable的區(qū)別

  (1)Callable規(guī)定的方法是call(),Runnable規(guī)定的方法是run().

  (2)Callable的任務(wù)執(zhí)行后可返回值,而Runnable的任務(wù)是不能返回值得

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

  (4)運(yùn)行Callable任務(wù)可以拿到一個(gè)Future對(duì)象,表示異步計(jì)算的結(jié)果。它提供了檢查計(jì)算是否完成的方法,以等待計(jì)算的完成,并檢索計(jì)算的結(jié)果。通過Future對(duì)象可以了解任務(wù)執(zhí)行情況,可取消任務(wù)的執(zhí)行,還可獲取執(zhí)行結(jié)果。

  通過實(shí)現(xiàn)Runnable接口來創(chuàng)建Thread線程:

  步驟1:創(chuàng)建實(shí)現(xiàn)Runnable接口的類:

  Java代碼:

  class SomeRunnable implements Runnable

  {

  public void run()

  {

  //do something here

  }

  }

  步驟2:創(chuàng)建一個(gè)類對(duì)象:

  Runnable oneRunnable = new SomeRunnable();

  步驟3:由Runnable創(chuàng)建一個(gè)Thread對(duì)象:

  Thread oneThread = new Thread(oneRunnable);

  步驟4:啟動(dòng)線程:

  oneThread.start();

  至此,一個(gè)線程就創(chuàng)建完成了。

  注釋:線程的執(zhí)行流程很簡單,當(dāng)執(zhí)行代碼oneThread.start();時(shí),就會(huì)執(zhí)行oneRunnable對(duì)象中的void run();方法,

  該方法執(zhí)行完成后,線程就消亡了。

  通過實(shí)現(xiàn)Callable接口來創(chuàng)建Thread線程:

  與方法1類似,通過實(shí)現(xiàn)Callable接口來創(chuàng)建Thread線程:其中,Callable接口(也只有一個(gè)方法)定義如下:

  Java代碼:

  public interface Callable

  {

  V call() throws Exception;

  }

  步驟1:創(chuàng)建實(shí)現(xiàn)Callable接口的類SomeCallable(略);

  步驟2:創(chuàng)建一個(gè)類對(duì)象:

  Callable oneCallable = new SomeCallable();

  步驟3:由Callable創(chuàng)建一個(gè)FutureTask對(duì)象:

  FutureTask oneTask = new FutureTask(oneCallable);

  注釋:FutureTask是一個(gè)包裝器,它通過接受Callable來創(chuàng)建,它同時(shí)實(shí)現(xiàn)了

  Future和Runnable接口。

  步驟4:由FutureTask創(chuàng)建一個(gè)Thread對(duì)象:

  Thread oneThread = new Thread(oneTask);

  步驟5:啟動(dòng)線程:

  oneThread.start();

  至此,一個(gè)線程就創(chuàng)建完成了。

  通過繼承Thread類來創(chuàng)建一個(gè)線程:

  步驟1:定義一個(gè)繼承Thread類的子類:

  Java代碼:

  class SomeThead extends Thraad

  {

  public void run()

  {

  //do something here

  }

  }

  步驟2:構(gòu)造子類的一個(gè)對(duì)象:

  SomeThread oneThread = new SomeThread();

  步驟3:啟動(dòng)線程:

  oneThread.start();

  至此,一個(gè)線程就創(chuàng)建完成了。


【Java創(chuàng)建線程的三種方法比較及用法】相關(guān)文章:

Java創(chuàng)建線程的三種方法07-26

Java多線程的用法介紹09-15

如何創(chuàng)建并運(yùn)行Java線程10-01

Java線程同步的方法05-27

java Runnable接口創(chuàng)建線程詳解10-30

Java多線程通信方法09-03

Java實(shí)現(xiàn)多線程的方法11-10

java Runnable接口如何創(chuàng)建線程09-11

java單線程多線程的實(shí)現(xiàn)與方法09-25