大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java實現多線程的方法

Java實現多線程的方法

更新時間:2022-12-19 11:57:29 來源:動力節點 瀏覽1186次

動力節點小編來告訴大家Java實現多線程的三種方式,供大家參考,具體內容如下

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask; 
public class Main { 
  public static void main(String[] args) {
    //方法一:繼承Thread
    int i = 0;
//    for(; i < 100; i++){
//      System.out.println(Thread.currentThread().getName() + " " + i);
//      if (i == 5) {
//        ThreadExtendsThread threadExtendsThread = new ThreadExtendsThread();
//        threadExtendsThread.start();
//      }
//    }     
    //方法二:實現Runnable
//    for(i = 0; i < 100; i++){
//      System.out.println(Thread.currentThread().getName() + " " + i);
//      if (i == 5) {
//        Runnable runnable = new ThreadImplementsRunnable();
//        new Thread(runnable).start();
//        new Thread(runnable).start();
//      }
//    } 
    //方法三:實現Callable接口
    Callable<Integer> callable = new ThreadImplementsCallable();
    FutureTask<Integer> futureTask = new FutureTask<>(callable);
    for(i = 0; i < 100; i++){
      System.out.println(Thread.currentThread().getName() + " " + i);
      if (i == 5) {
        new Thread(futureTask).start();
        new Thread(futureTask).start();
      }
    }
    try {
      System.out.println("futureTask ruturn: " + futureTask.get());
    } catch (Exception e) {
      e.printStackTrace();
    }
  } 
}

方法一,繼承自Thread

public class ThreadExtendsThread extends Thread {
  private int i;
  @Override
  public void run() {
    for(; i < 100; i++) {
      System.out.println(getName() + " " + i); 
    }
  }
}

run方法為線程執行體,ThreadExtendsThread對象即為線程對象。

方法二,實現Runnable接口

public class ThreadImplementsRunnable implements Runnable {
  private int i;
  @Override
  public void run() {
    for(; i < 100; i++){
      System.out.println(Thread.currentThread().getName() + " " + i);
    }
  }
}

run方法為線程執行體,使用時New一個Thread對象,Runnable對象作為target傳遞給Thread對象。且同一個Runnable對象可作為多個Thread的target,這些線程均共享Runnable對象的實例變量。

方法三,實現Callable接口

import java.util.concurrent.Callable;
public class ThreadImplementsCallable implements Callable<Integer> {
  private int i;   
  @Override
  public Integer call() throws Exception {
    for(; i < 100; i++){
      System.out.println(Thread.currentThread().getName() + " " + i);
    }
    return i;
  }
}

Callable接口類似于Runnable接口,但比對方強大,線程執行體為call方法,該方法具有返回值和可拋出異常。使用時將Callable對象包裝為FutureTask對象,通過泛型指定返回值類型。可稍候調用FutureTask的get方法取回執行結果。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美日韩一二三区免费视频观看 | 精品不卡 | 欧美一区二区三 | 久久九九热 | 七次郎在线成人精品 | 国产免费午夜a无码v视频 | 免费观看欧美精品成人毛片 | 亚洲一区二区三区四 | 天天伊人网 | 日本亚洲高清 | 亚洲精品在线网 | 国产不卡视频 | 久久亚洲国产中v天仙www | 久草综合在线观看 | 99综合视频 | 亚洲国产精品自产拍在线播放 | 亚洲成年人视频 | 四虎国产永久在线观看 | 欧美在线一区视频 | 四虎影院在线观看网站 | 我要看欧美精品一级毛片 | 久久免费看片 | 久久国产精品永久免费网站 | 在线久综合色手机在线播放 | 国产精品美女久久久久 | 欧洲性大片xxxxx久久久 | 精品视频一区在线观看 | 日日碰天天久久 | 日本一区中文字幕 | 99热久久国产精品这里有99 | 国产亚洲欧美日韩在线看片 | 久久久四虎成人永久免费网站 | 在线观看91精品国产不卡免费 | 午夜毛片在线观看 | 精品国产福利在线观看一区 | 国产中文字幕免费 | 亚洲国产综合精品 | 国产精品不卡在线观看 | 一级片在线观看免费 | 日韩精品视频美在线精品视频 | 在线理论视频 |