スレッドを作成するには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