第一: activeCount()是怎么实现的?
第二: 同上:线程是怎么结束的?

解决方案 »

  1.   

    设一下变量threadCount来保存活动线程数目,
    创建新线程时先判断这个变量的值是否大于3就不要创建新线程.
    结束线程时把这个变量的值减1就可以了.
    最好不要用函数来判断,很难实现.
    以上是我的浅见.
      

  2.   

    把你的操作实现为一个线程类
    把count<=3作为它的静态成员
    在构造函数中限制count的数量或者
    把你的操作实现为一个类静态方法,同时要有一个静态数据成员(count)来记录该方法的调用情况
    在方法开始的时候++count;方法结束的时候--count;
    并在方法里判断count<=3,否则return
    在线程类里来调用这个静态方法
      

  3.   

    线程结束或挂起的时候,activeCount会自动减少
      

  4.   

    真正的程序太多了,贴了看起来也麻烦,写了一个测试的程序:import java.lang.*;public class test extends Thread {
       public static void main(String[] args) {
          new test().process();
       }
       public void process() {
          int nChildCount = 0;
          for(;;) {
             int nActiveCount = Thread.currentThread().activeCount();
             while(nActiveCount > 5) {
                try {
                   System.out.println("sleep");
                   Thread.sleep(1000);
                } catch(Exception e) {
                   e.printStackTrace();
                }
             }
             System.out.println("child count  = " + nChildCount++ + ", active count = " + nActiveCount);
             Thread thr = new Thread(this, "" + nChildCount);
             thr.start();
          }
       }
       public void run() {
          try {
             Thread.sleep(10000);
          } catch(Exception e) {e.printStackTrace();}
       }
    }这个程序被改过很多次,我都忘了之前出问题时是哪个版本了,反正后来把他改成这样了就行了。
    帮我看看这个程序对不对,多谢。