threadの作成(インターフェース)
スレッドを作成するにはjava.lang.Threadクラスを継承する必要があります。
しかし、継承しなくても Runnable インターフェースをimplementsすることによりスレッドを実装することができます。
以下に、スレッドクラスをRunnableインターフェースをimplementsしたスレッド(MyThread)を作成します。runメソッドをオーバーライドしています。

public class MyThread implements Runnable{
    public void run(){
        for (int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName());
        }
    }
}
継承と違うのは、上記クラスで作成したスレッドクラスをインスタンス化し、 そのインスタンスをThreadのコンストラクタに引数として渡す 点です。
そして、Threadのインスタンス(下の例で言うとth)が start() メソッドを呼び出すことにより、コンストラクタで渡したインスタンスの run() メソッドが実行されます。
以下を見てください。

public class TEST {
    public static void main(String[] args){
        MyThread thread1 = new MyThread();
        MyThread thread2 = new MyThread();
        
        Thread th = new Thread(thread1);
        th.start();
        th = new Thread(thread2);
        th.setName("スレッド2");
        th.start();
    }
}
この実行結果は以下のようになります。

Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
Thread-0
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2
スレッド2

Back to top

Information