麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Java創建線程三種方式的優缺點

2024-07-14 08:43:11
字體:
來源:轉載
供稿:網友

Java創建線程主要有三種方式:繼承Thread類創建線程、實現Runnable接口創建線程和實現Callable和Future創建線程。

繼承Thread類

public class Thread1 extends Thread {  @Override  public void run() {    for (int i = 0; i < 10; i++) {      System.out.println(getName() + ": " + i);    }  }  public static void main(String[] args) {    for (int i = 0; i < 10; i++) {      System.out.println(Thread.currentThread().getName() + ": " + i);      if (i == 2) {        new Thread1().start();        new Thread1().start();      }    }  }}

實現Runnable接口

public class Thread2 implements Runnable {  @Override  public void run() {    for (int i = 0; i < 10; i++) {      System.out.println(Thread.currentThread().getName() + ": " + i);    }  }  public static void main(String[] args) {    for (int i = 0; i < 10; i++) {      System.out.println(Thread.currentThread().getName() + ": " + i);      if (i == 2) {        Thread2 thread2 = new Thread2();        new Thread(thread2).start();        new Thread(thread2).start();      }    }  }}

實現Callable接口

FutureTask類包裝Callable對象時,封裝了Callable對象的call()方法的返回值。

class Thread3 implements Callable {  @Override  public Integer call() throws Exception {    int i = 0;    for (; i < 10; i++) {      System.out.println(Thread.currentThread().getName() + ": " + i);    }    return i;  }  public static void main(String[] args) {    Thread3 thread3 = new Thread3();    FutureTask<Integer> futureTask = new FutureTask<Integer>(thread3);    for (int i = 0; i < 10; i++) {      System.out.println(Thread.currentThread().getName() + " :" + i);      if (i == 2) {        new Thread(futureTask, "有返回值的線程").start();      }    }    try {      System.out.println("子線程返回值: " + futureTask.get());    } catch (InterruptedException e) {      e.printStackTrace();    } catch (ExecutionException e) {      e.printStackTrace();    }  }}

三種方式優缺點

采用實現接口(Runnable和Callable)的方式,線程類還可以繼承其他的類。實現接口的線程對象還可以用來創建多個線程,可以實現資源共享。缺點是不能使用this指針來獲取線程的名字等。

采用繼承Thread類的方式,線程不能繼承其他的類,但是Thread類中有getName方法,因為可以直接使用this.getName()來獲取當前線程的名字。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产黄色录像片 | 午夜视频免费播放 | jj视频在线播放 | 亚洲第一成人av | 国产精品视频在线观看免费 | 视频一区国产 | 女人裸体让男人桶全过程 | 久草欧美 | 美女一级毛片 | 国产一级二级视频 | 精品成人网 | aa国产视频一区二区 | 国产永久免费观看 | 2021免费日韩视频网 | 强伦女教师视频 | 国产免费视频一区二区裸体 | 在线视频 日韩 | 可以看逼的视频 | 成人做爰高潮片免费视频美国 | 精品久久一区二区三区 | 欧美一级做性受免费大片免费 | 久久国产免费 | 国产精品免费久久久 | 成人不卡免费视频 | 成人在线视频在线观看 | 91精品观看91久久久久久国产 | 神马久久精品综合 | 狠狠操夜夜爱 | japan护士性xxxⅹhd | 在线观看网址av | 久草手机在线视频 | 九九视频精品在线 | 99精彩视频在线观看 | 久久久久99999 | 亚洲精品欧美在线 | 久久99精品久久久久久国产越南 | 国产福利视频在线观看 | 欧美一级高潮 | 中国免费一级毛片 | 亚洲网站在线播放 | 一级做受毛片免费大片 |