Next: 10.3 スレッドの名前
Up: 10 マルチスレッド
Previous: ごみ集め
Threadクラスを継承するのではなく,Threadの実行に必要なメソッドを
宣言しているRunnableインタフェース が,java.langパッケージの中に用
意されており,これを実装することによってスレッド実行が
なされるクラスを定義することができる.
Runnableは,run()メソッドを宣言したインタフェースである.
Runnableを実装するクラスのインスタンスをThreadコンストラクタに渡して,ス
レッドクラスのインスタンスを作る形となる.
Threadクラス自体もRunnableインタフェースを実装している.
// RunnableTest.java
class Echo implements Runnable {
int i = 0;
public void run() {
while (i++ < 3) {
System.out.println("hello " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}
public class RunnableTest {
public static void main(String argv[]){
Echo e1 = new Echo();
Thread th1 = new Thread(e1);
Echo e2 = new Echo();
Thread th2 = new Thread(e2);
System.out.println("Echo test");
th1.start();
th2.start();
System.out.println("end start");
}
}
% javac RunnableTest.java
% java RunnableTest
Echo test
hello 1
end start
hello 1
hello 2
hello 2
hello 3
hello 3
generated through LaTeX2HTML. M.Inaba 平成18年5月7日