スレッドを作成するには 2 つの方法があります。
- Threadクラスを拡張することで
- Runnable インターフェイスを実装することによって。
スレッドクラス:
Thread クラスは、スレッドを作成して操作を実行するためのコンストラクターとメソッドを提供します。Thread クラスは Object クラスを拡張し、Runnable インターフェイスを実装します。
Thread クラスの一般的に使用されるコンストラクター:
- 糸()
- スレッド(文字列名)
- スレッド(実行可能r)
- スレッド(実行可能r,文字列名)
Thread クラスの一般的に使用されるメソッド:
実行可能なインターフェース:
Runnable インターフェイスは、スレッドによって実行されるインスタンスを持つクラスによって実装される必要があります。実行可能なインターフェイスには、run() という名前のメソッドが 1 つだけあります。
NFAからDFAへの変換
スレッドを開始します:
の start() メソッド Thread クラスのは、新しく作成されたスレッドを開始するために使用されます。次のタスクを実行します。
- 新しいスレッドが (新しいコールスタックで) 開始されます。
- スレッドは New 状態から Runnable 状態に移行します。
- スレッドが実行する機会を得ると、そのターゲットの run() メソッドが実行されます。
1) Thread クラスを拡張した Java Thread の例
ファイル名: マルチ.java
class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } }
出力:
thread is running...
2) Runnable インターフェースを実装した Java スレッドの例
ファイル名: マルチ3.java
メール
class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } }
出力:
thread is running...
Thread クラスを拡張していない場合、クラス オブジェクトはスレッド オブジェクトとして扱われません。したがって、Thread クラス オブジェクトを明示的に作成する必要があります。クラスの run() メソッドが実行できるように、Runnable を実装するクラスのオブジェクトを渡します。
3) スレッドクラスの使用: Thread(文字列名)
上記で定義したコンストラクターを使用して、Thread クラスを直接使用して新しいスレッドを生成できます。
ファイル名: MyThread1.java
public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } }
出力:
My first thread
4) スレッドクラスの使用: Thread(Runnable r, String name)
次のプログラムを観察してください。
企業対企業
ファイル名: MyThread2.java
public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } }
出力:
My new thread Now the thread is running ...