本帖最后由 fanday 于 2010-06-09 15:32:17 编辑

解决方案 »

  1.   

    MD里面要实现run方法吧。。跑完了就自己断了嘛
      

  2.   

    在主线程中调用子线程的join方法,就会等子线程结束后再执行下面的代码了。Md md = new Md();
    Thread t = new Thread(md);
    t.start();
    t.join();
    也可以在子线程里设置一个标识boolean isCompleted = false,在程序最后设置标识:isCompleted = true;
    在主线程中:Md md = new Md();
    Thread t = new Thread(md);
    t.start();
    while(true){
        if(t.isCompleted){
            break;
        }
    }
      

  3.   

    while(true){
        Md md = new Md();
        new Thread(md).start();
    }是在一个线程的run方法里面吧?
    如果是,你这样的代码本来就没什么道理,只能说测试用的。关于你说的什么时候断掉,就是退出这个while, 那要看具体需求,你需要什么时候断掉。 比如你只要new 100个新线程,
    int i=0;
    while(true){
        Md md = new Md();
        new Thread(md).start();
        if(i++==100){
             break;
        }
    }
      

  4.   

    这个还是你考滤,你要实现什么样的逻辑了,呵
    while(true)
    {
      if ("bye".equals(XXX))
    {
       break;
    }
    }
      

  5.   

    不要用while(true)用一个变量作为条件,你想断掉线程就让条件变为false线程执行完毕自然断开
      

  6.   


    在java.util.concurrent包下有这么一个类FutureTask<V>,“可使用 FutureTask 包装 Callable 或 Runnable 对象。因为 FutureTask 实现了 Runnable,所以可将 FutureTask 提交给 Executor 执行。”该类有个public boolean cancel(boolean mayInterruptIfRunning)方法,可实现“断掉”当前正在执行的任务,不过具体的还是看文档吧~ :-)