2つのスレッドを並行して実行する. 各スレッドは毎回の繰り返しの途中で,それぞれ1000ミリ秒,および, 2000ミリ秒のあいだ処理を休止する.
import java.util.*; public class ThreadDemo extends Thread { int stime; // コンストラクタ public ThreadDemo(String str, int time) { setName(str); stime = time; } // 現在の時刻を返す private String showClock() { Calendar clock = Calendar.getInstance(); String now = clock.get(clock.HOUR_OF_DAY) + "時" + clock.get(clock.MINUTE) + "分" + clock.get(clock.SECOND) + "秒"; return now; } // スレッド上での処理する内容 public void run() { for(int i = 0; i < 10; i++) { System.out.println(getName() + " " + (i+1) + "回目\t" + showClock()); try { sleep(stime); // stime[ミリ秒]のあいだ処理を休止する } catch(InterruptedException e) {} } System.out.println(getName() + " 終了\t" + showClock()); } public static void main(String[] args) { Thread t1 = new ThreadDemo("スレッド1", 1000); // sleepタイムを1秒に設定 Thread t2 = new ThreadDemo("スレッド2", 2000); // sleepタイム 2秒 t1.start(); // スレッド1の実行を開始 t2.start(); // スレッド2の実行を開始 } }
GUIを利用するプログラムでは,既に, extends JFrame などと,GUIクラスを拡張して新しいクラスを作成する.
このためスレッドの利用方法には Thread クラスを拡張する方法と Runnable インターフェースを利用する方法 がある.