複数のスレッドを監視する

マルチスレッドで複数の処理を同時に実行しているのだけれど、全員が正しく動いているのか、待ちやデッドロックになっていないかどうか心配です。
なので、スレッドを定期的に監視するスレッドモニタを作ってみました。
各スレッドの名前と状態を定期的に System.out に出力します。
表示部分や監視周期は状況に応じて変えてください。

public class ThreadMonitor extends Thread {
    final long PERIOD = 10*1000L;   // 10sec
    Thread threadList;
    boolean loopflag;
    public ThreadMonitor(Thread threadList) {
        this.threadList = threadList;
        this.loopflag = true;
    }
    public void requestStop() {
        loopflag = false;
    }
    public void run() {
        while (loopflag) {
            try { Thread.sleep(PERIOD); } catch (InterruptedException ex) {}
            String result = "";
            for (int i=0; i<threadList.length; i++) {
                Thread t = threadList[i];
                result += t.getName() + "=" + t.getState().toString();
            }
            System.out.println(result);
        }
    }
}

げっ、役に立った!
いくつかのスレッドがRuntimeExceptionで落ちていやがった。