目次
オプション 2: Runnable インターフェイスを実装して実装する
オプション 3: Callable インターフェイスと Future インターフェイスを使用して実装する
オプション 1: Thread クラスを継承する
- Threadクラスを継承するクラスMyThreadを定義する
- MyThread クラスの run() メソッドをオーバーライドします。
- MyThreadクラスのオブジェクトを作成する
- スレッドを開始します
ステップ 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 インターフェイスを実装して実装する
- Runnable インターフェイスを実装するクラス MyRunnable を定義します。
- MyRunnable クラスの run() メソッドをオーバーライドします。
- MyRunnbale クラス オブジェクトを作成する
- Thread クラスのオブジェクトを作成し、MyRunnable オブジェクトをコンストラクター メソッドのパラメーターとして使用します。
- スレッドを開始します
ステップ 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 インターフェイスを使用して実装する
- Callable インターフェイスを実装するクラス MyCallable を定義します。
- MyCallable クラスの call() メソッドをオーバーライドします。
- MyCallableクラスのオブジェクトを作成する
- Future 実装クラスの FutureTask オブジェクトを作成し、MyCallable オブジェクトをコンストラクターのパラメーターとして使用します。
- Thread クラスのオブジェクトを作成し、FutureTask オブジェクトをコンストラクター メソッドのパラメーターとして使用します。
- スレッドを開始します
ステップ 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(); } }