我想要有一个主程序,建立了两个线程,这个两个线程还可能建立其它的线程。主程序建立线程后,保持等待用户输入状态,如果用户输入END,则停止另外两个线程,然后主程序结束。有没有朋友,能给点以上代码的小片段,给我一个提示啊,没弄过线程//

解决方案 »

  1.   

    运行结束后 java不是会自动释放掉 线程么?
    那样的话运行停止就可以了。
    不知道对不对
    不对的话 看过就忘了吧 呵呵
      

  2.   

    输入完成后,System.exit(0),就可以了。
      

  3.   

    在主线程内设定一个标志位
    volatile boolean bStop = false;当用户输入end后 bStop = true;然后在两外两个线程中的while循环中检查bStop的值, if( bStop ) 则跳出while循环, 线程函数结束了,线程的生命期也就结束了
      

  4.   


    public class ThreadTest{
    public static void main(){
        worker worker1 = new worker("thread1");
        worker worker2 = new worker("thread2");
        worker1.start();
        worker2.start();    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String enter = null;
          while(true){
            try{
            enter = input.readLine();
            }catch(IOException e){
                System.out.println(e);
            }
            if( enter.equals("end")){
                 worker1.setFlag();
                 worker2.setFlag();
                 break;  
            }else if( enter.equals("***")){
               //do sth
            }else{
               ......
            }
        }
        
    }
    }class worker extends Thread{
       private String name;
       private boolean bStopped = false;   public worker(String name){
           System.out.println("create Thread: "+name) ;
       }   public synchronized void setFlag(){
            bStopped = true;
       }
       public void run(){
           while(true){
               //do something else
               if( bStopped ) break;
           }
       }
    }