这个问题已经解决,换个问题。
现在我是想保持最多n个进程同时工作,只有在有进程结束工作后,才能new新进程
如何操作
本来我想通过数组Thread a=new Thread[n];
a[i++]=new ...
我有办法控制最多n个进程
但是不知道如何控制这个i,总不能让其一直++吧,我根本不知道一共会产生多少个线程的

解决方案 »

  1.   

    我是这样做的 java.lang.ThreadGroup tg1 = new java.lang.ThreadGroup("my");
    while(true) {
    if (nCount<=5) {
         Thread t1 = new Thread(tg1,new QQ("" + i));
         t1.start();  
         nCount ++;
         i++;
         }
         if (nCount> 5) b1 = true;
         //i++;
         //if (!t1.isAlive()) nCount--;
         //System.out.println(i);
         if (b1 && tg1.activeCount()<5) nCount--;
    if (i>nEndNo) break;    
    }  
      

  2.   

    ThreadGroup tg=new ThreadGroup("Test");
            while(true){
                System.out.println("Thread count:"+tg.activeCount());
                try {
                    Thread.sleep(100);
                    int i;
                    if((i=tg.activeCount())<10){
                        System.out.println("One Thread Created!");
                        new Thread(tg,""){
                            public void run(){
                                while(true){
                                    try {
                                        Thread.sleep(1000);
                                        if(Math.random()<0.5){
                                            System.out.println("One Terminaled!");
                                            break;
                                        }
                                    }
                                    catch (InterruptedException ex) {
                                    }
                                };
                            }
                            }.start();
                    }
                }
                catch (InterruptedException ex) {
                }
            }
      

  3.   

    如楼上所说的,用ThreadGroup来控制线程数。