Runnableインターフェイス

Runnableインターフェイスと run()メソッドについて解説します。


今までのイベント処理などは、 全てAppletクラスにあらかじめ用意されていた 機能を利用して実現しました。 ところが、 Appletクラス自体には Thread を取り扱う機能は用意されていません。 Threadを使ったアプレットを作るためには、 インターフェイス Runnableを「インプリメント」します。 プログラムの実例で見てみましょう。


public class Clock extends Applet implements Runnable {

Runnableの内部にデータとして用意されているのは、 run()という名前のメソッドだけです。 しかも定義されているのは名前のみで、その内容は全く存在しません。 このようなメソッドを abstract なメソッドと呼びます。

public interface Runnable {

       public void run();
}

このメソッドは Thread によって実行される処理の内容になります。 Runnableによって追加されるのは、Threadのオブジェクトではありません。 Threadのオブジェクトは Runnable をインプリメントしたクラス (たとえばアプレット)の定義の中で用意します。 run()の内容も、あらためて内容を実装されることになります。

public class Clock extends Applet implements Runnable {

     public Thread thread; //スレッドのオブジェクトを用意
                       :
                       :
     public void run() {

            /* 独立したスレッドとして実行する処理の内容 */
     }
}