スレッド
スレッドは同じプログラム内部で独立に実行されるプロセスです。一般のプロセスと比較し、メモリ等の保護機能が不要なためシステムから見ると軽いプロセスとなり、切り替えも早くなります。アップレット内部でスレッドを組み込む場合、extendは利用できないため、Runnableインターフェースを利用します。
public
class jpegAnim extends Applet implements
Runnable{ }
スレッドは、通常 start() メソッドで起動します。これは、ページが表示される時呼び出されるメソッドです。 public void start()
{
thread1 = new Thread(this);
thread1.start();
}スレッドの本体は、次の run() メソッドで、アプレットとは独立して実行されます。ここでは、画像を表示後、sleep()で指定された時間:Delay[index] だけ休止します。休止から覚めると、indexを更新し、animateFlagがtrueの間、繰り返します。
public void run()//スレッド実行部
{
while(animateFlag){
repaint();
try {
Thread.sleep(Delay[index]);//遅延時間休止
}
catch(InterruptedException e) { }
index++;
if(index > 3) index = 0;
}
}スレッドにしないで、sleep() を実行すると、アップレットは休止状態にはいるため、GUI部品の実行(マウス選択など)ができなくなってしまいます。スレッドは、stop()メソッドで終了させます。stop()メソッドはページの表示が終了すると、呼び出されるメソッドです。
public void stop()
{
animateFlag = false;
}