亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 實現(xiàn)多線程的方法總結(jié)

 更新時間:2016年10月02日 10:12:52   投稿:lqh  
這篇文章主要介紹了java 實現(xiàn)多線程的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下

java 實現(xiàn)多線程的三種方法

在java中,有三種方法可以實現(xiàn)多線程。第一種方法:繼承Thread類,重寫run函數(shù)。第二種方法:實現(xiàn)Runnable接口,重寫run函數(shù)。第三種方法:實現(xiàn)Callable接口,重寫call函數(shù)。本文章將通過實例講解這三種方法如何實現(xiàn)多線程。需要的可以參考一下。

 (1)繼承Thread類,重寫run函數(shù)。

class xx extends Thread{
     public void run(){
      Thread.sleep(1000)  //線程休眠1000毫秒,sleep使線程進(jìn)入Block狀態(tài),并釋放資源
    }}

開啟線程:

對象.start()    //啟動線程,run函數(shù)運(yùn)行

(2)實現(xiàn)Runnable接口,代碼如下

class MyThread implements Runnable {
  
  private String name;
  
  public MyThread(String name) {
    super();
    this.name = name;
  }
  
  @Override
  public void run() {
    for(int i = 0 ; i < 200; i++) {
      System.out.println("Thread"+name+"--->"+i);
    }  
  }
}

public class ThreadDemo {

  public static void main(String[] args) {
    MyThread a = new MyThread("a");
    MyThread b = new MyThread("b");
    MyThread c = new MyThread("c");
    new Thread(a).start();
    new Thread(b).start();
    new Thread(c).start();
  }
}

(3)實現(xiàn)Callable接口,重寫call函數(shù)

Callable是類似于Runnable的接口,實現(xiàn)Callable接口的類和實現(xiàn)Runnable的類都是可被其它線程執(zhí)行的任務(wù)。

Callable和Runnable有幾點(diǎn)不同:

  1. Callable規(guī)定的方法是call(),而Runnable規(guī)定的方法是run().
  2. Callable的任務(wù)執(zhí)行后可返回值,而Runnable的任務(wù)是不能返回值的
  3. call()方法可拋出異常,而run()方法是不能拋出異常的。
  4. 運(yùn)行Callable任務(wù)可拿到一個Future對象,F(xiàn)uture表示異步計算的結(jié)果。它提供了檢查計算是否完成的方法,以等待計算的完成,并檢索計算的結(jié)果.通過Future對象可了解任務(wù)執(zhí)行情況,可取消任務(wù)的執(zhí)行,還可獲取任務(wù)執(zhí)行的結(jié)果

Java  Callable 代碼示例:

class TaskWithResult implements Callable<String> {
 private int id;

 public TaskWithResult(int id) {
 this.id = id;
 }

 @Override
 public String call() throws Exception {
 return "result of TaskWithResult " + id;
 }
}

public class CallableTest {
 public static void main(String[] args) throws InterruptedException,
  ExecutionException {
 ExecutorService exec = Executors.newCachedThreadPool();
 ArrayList<Future<String>> results = new ArrayList<Future<String>>(); //Future 相當(dāng)于是用來存放Executor執(zhí)行的結(jié)果的一種容器
 for (int i = 0; i < 10; i++) {
  results.add(exec.submit(new TaskWithResult(i)));
 }
 for (Future<String> fs : results) {
  if (fs.isDone()) {
  System.out.println(fs.get());
  } else {
  System.out.println("Future result is not yet complete");
  }
 }
 exec.shutdown();
 }
}
 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Idea 配置國內(nèi) Maven 源的圖文教程

    Idea 配置國內(nèi) Maven 源的圖文教程

    這篇文章主要介紹了Idea 配置國內(nèi) Maven 源的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • CentOS安裝solr 4.10.3詳細(xì)教程

    CentOS安裝solr 4.10.3詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了CentOS安裝solr 4.10.3的詳細(xì)教程 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • idea與eclipse項目相互導(dǎo)入的過程(圖文教程)

    idea與eclipse項目相互導(dǎo)入的過程(圖文教程)

    這篇文章主要介紹了idea與eclipse項目相互導(dǎo)入的過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • spring boot實現(xiàn)上傳圖片并在頁面上顯示及遇到的問題小結(jié)

    spring boot實現(xiàn)上傳圖片并在頁面上顯示及遇到的問題小結(jié)

    最近在使用spring boot搭建網(wǎng)站的過程之中遇到了有點(diǎn)小問題,最終解決方案是在main目錄下新建了一個webapp文件夾,并且對其路徑進(jìn)行了配置,本文重點(diǎn)給大家介紹spring boot實現(xiàn)上傳圖片并在頁面上顯示功能,需要的朋友參考下吧
    2017-12-12
  • java后端操作樹結(jié)構(gòu)的案例代碼

    java后端操作樹結(jié)構(gòu)的案例代碼

    這篇文章主要介紹了java后端操作樹結(jié)構(gòu),樹結(jié)構(gòu)的三種組裝方式(遞歸.雙層for循環(huán),map),通過實例代碼介紹了使用遞歸查詢某個節(jié)點(diǎn)所在的樹結(jié)構(gòu),需要的朋友可以參考下
    2023-10-10
  • Java實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)

    Java實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實現(xiàn)超大Excel文件解析(XSSF,SXSSF,easyExcel)以及速度的對比,感興趣的可以了解一下
    2022-07-07
  • Java壓縮和解壓縮ZIP文件實戰(zhàn)案例

    Java壓縮和解壓縮ZIP文件實戰(zhàn)案例

    這篇文章主要給大家介紹了關(guān)于Java壓縮和解壓縮ZIP文件的相關(guān)資料,ZIP是一種較為常見的壓縮形式,最近項目中遇到了再Java中壓縮和解壓縮zip文件的需求,特此分享給大家,需要的朋友可以參考下
    2023-07-07
  • SpringBoot?Security的自定義異常處理

    SpringBoot?Security的自定義異常處理

    這篇文章主要介紹了SpringBoot?Security的自定義異常處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中關(guān)于控制臺讀取數(shù)字或字符串的方法

    Java中關(guān)于控制臺讀取數(shù)字或字符串的方法

    下面小編就為大家?guī)硪黄狫ava中關(guān)于控制臺讀取數(shù)字或字符串的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Mybatis Plus 增刪改查的實現(xiàn)(小白教程)

    Mybatis Plus 增刪改查的實現(xiàn)(小白教程)

    本文主要介紹了Mybatis Plus 增刪改查,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論