很简单啊。你已经基本说明白了。
一个主控类,三个线程类(当然可能是一个,被你示例化了三份)。
主控类用来调用/运行三个线程类、接收用户输入、停止指定线程类。
线程类是自循环执行,当退出条件满足,则退出大概写了一个流程性质的东西,供参考public class TMainClass{
public static void main(String[] args){
根据参数启动TloopThread
启动线程
thread1=new TloopThread();
thread1.start();

接受客户输入
if (客户要停止线程1){
thread1.setStop();
}
}
}class TloopThread extends Thread{
boolean isStop=false; public void run(){
  while(!isStop){
//循环执行
}
} //设置停止
public void setStop(){
isStop=true;
}
}

解决方案 »

  1.   

    停止线程可以直接用thread1.stop();
      

  2.   

    问题1:在主线程中启动三个线程没什么问题.
    问题2:给三个线程各配一个ID,根据输入终止Thread.stop();
    问题3:你把三个线程将要完成的任务放在它的run()方法时,如果处理完了,这个线程也就自动结束了所以不需要人为终止.
      

  3.   

    >>回复人: alpha15(奥法) ( ) 信誉:100 
    >>停止线程可以直接用thread1.stop();
    虽然使用Stop可以强制终止一个线程,但是java2中已经不推荐这样做了,属于deprecated的。还是判断退出条件相对好一点点……
      

  4.   

    我部门正在招聘JAVA工程师,要求软件基础良好,学习能力强,熟悉J2SE。如有在深圳、青岛、烟台的朋友感兴趣请把简历发给我:
      [email protected]  
      
      

  5.   

    另外补充一下,如果你希望这个程序是健壮的,最好加入synchronized机制。
      

  6.   

    riverwater(小河流水)的方案是可行的,一点改进建议:
    1.private volatile boolean isStop = false;
    2.轮询是不建议采用的方式。所谓轮询是指类似下列的代码:
      while(某个条件不满足){
        sleep(1000);
      }
      使用while循环始终查询某个条件是否满足,不满足就休眠一段时间,直到等待条件满足为止。这样会占用更多CPU资源,建议采用的方法是用wait()/notifyAll()取代轮询。
      while(某个条件不满足){
        object1.wait();
      }
      而在其它线程中当该条件满足时通过 object1.notifyAll() 唤醒该线程。
      

  7.   

    结束线程最好不要直接调用stop()方法,,你可以加上判断 isAlive(),再用stop