マルチスレッド実装

目次

オプション 1: Thread クラスを継承する

 オプション 2: Runnable インターフェイスを実装して実装する

オプション 3: Callable インターフェイスと Future インターフェイスを使用して実装する


オプション 1: Thread クラスを継承する

  1. Threadクラスを継承するクラスMyThreadを定義する
  2. MyThread クラスの run() メソッドをオーバーライドします。
  3. MyThreadクラスのオブジェクトを作成する
  4. スレッドを開始します
ステップ 1: Thread クラス パッケージ com.java.factory.TheadDemo を継承するクラス MyThread を定義します

; 

public class MyThread extends Thread{ 
    //Thread の run メソッドを書き換えます
    @Override 
    public void run() { 
        for (int i = 0; i <20 ; i++) { 
            System.out.println("スレッド thread が開始されました"+i); 
        } 
    } 
}

 ステップ 3: MyThread クラスのオブジェクトを作成する

パッケージ com.java.factory.TheadDemoText; 

インポートcom.java.factory.TheadDemo.MyThread; 

public class MyThreadText { 
    public static void main(String[] args) { 
        MyThread myThread = new MyThread(); 
        //启アニメーション程
        myThread.start(); 
    } 
}

 オプション 2: Runnable インターフェイスを実装して実装する

  1. Runnable インターフェイスを実装するクラス MyRunnable を定義します。
  2. MyRunnable クラスの run() メソッドをオーバーライドします。
  3. MyRunnbale クラス オブジェクトを作成する
  4. Thread クラスのオブジェクトを作成し、MyRunnable オブジェクトをコンストラクター メソッドのパラメーターとして使用します。
  5. スレッドを開始します
ステップ 1: Runnable インターフェイス

パッケージを実装するクラス MyRunnable を定義します com.java.factory.TheadDemo; 

public class MyRunnableimplements Runnable { 
    //run() メソッドをオーバーライド
    @Override 
    public void run() { 
        for (int i = 0; i < 10; i++) { 
            System.out.println("実行可能なスレッドの開始"); 
        } 
    } 
}

ステップ 3: MyRunnbale クラス オブジェクトを作成する

package com.java.factory.TheadDemoText; 

import com.java.factory.TheadDemo.MyRunnable; 

public class MyRunnableText { 
    public static void main(String[] args) { 
        //パラメータ オブジェクト
        MyRunnable を作成 myR = new MyRunnable(); 
        / /スレッドオブジェクトを作成し、パラメータをスレッドに渡す
        //スレッドが開始されると、パラメータ内の run メソッドが実行されます
        Thread thread = new Thread(myR); 
        //スレッドを開始
        thread.start(); 
    } 
}

オプション 3: Callable インターフェイスと Future インターフェイスを使用して実装する

  1. Callable インターフェイスを実装するクラス MyCallable を定義します。
  2. MyCallable クラスの call() メソッドをオーバーライドします。
  3. MyCallableクラスのオブジェクトを作成する
  4. Future 実装クラスの FutureTask オブジェクトを作成し、MyCallable オブジェクトをコンストラクターのパラメーターとして使用します。
  5. Thread クラスのオブジェクトを作成し、FutureTask オブジェクトをコンストラクター メソッドのパラメーターとして使用します。
  6. スレッドを開始します

ステップ 1: Callable インターフェースを実装するクラス MyCallable を定義する

package com.java.factory.TheadDemo; 

import java.util.concurrent.Callable; 

public class MyCallableimplements Callable<String> { 

    @Override 
    public String call() throws Exception { 
        for (int i = 0; i < 10; i++) { 
            System.out.println("MyCallable isungry"); 
        } 
        //戻り値は、スレッドの実行が終了した後の結果を表します
        return "Order takeout!"; 
    } 
}

ステップ 3: MyCallable クラスのオブジェクトを作成する

package com.java.factory.TheadDemoText; 

import com.java.factory.TheadDemo.MyCallable; 

import java.util.concurrent.FutureTask; 

public class MyCallableText { 
    public static void main(String[] args) { 
        //オブジェクトを作成、実行call method 
        MyCallable myCallable = new MyCallable(); 
        //スレッドの実行が完了した後に結果を取得することも、パラメータとして Thread オブジェクトに渡すこともできます
        FutureTask<String> FT = new FutureTask<>(myCallable); 
        //スレッドオブジェクトを作成
        Thread = new Thread(FT); 
        //スレッドを開始
        thread.start(); 

    } 
}

 

 

おすすめ

転載: blog.csdn.net/qq_51358596/article/details/127374374