我的程序中用到了两个线程类分别是a和b,a线程类用来做业务处理,主类派生出许多a线程类的实例来处理业务,同时,需要一个线程类b来监控a线程的实例线程的运行情况,简单来说,就是要判断那些线程是否在运行,如果不在运行,则要重新启动。情况就是这样子,因为对java语言的了解还不够深入,特别是线程这一块,还往高手多多指教!

解决方案 »

  1.   

    如果只是监听线程a是否存在或者说是否在运行应该更恰当一点...只需要用线程a 的isAlive()方法来判断是否在运行即可
      

  2.   

    对类a的所有reference用isAlive()方法来判断
      

  3.   

    这是一个典型的观察者模式,只是在多线程的情况下而以:业务A
    {
    A()
    {
    this.addObserver(B.getInstance())
    }
    run();
    }监控B{
    Vector v;//装载所有的Arun()
    {
    定时监控v的变化情况,
    update();
    }update()
    {
    if(!a.isAlive())
    {
    new A().start()
    }
    }
    }
      

  4.   

    if(!checker.isAlive()) {
    checker.start();
    }我第二次 判断checker.isAlive() 还是false结果 又调用了checker.start() 就出现了...java.lang.IllegalThreadStateException这个异常