在一段代码中,启动一个线程,需要等到该线程结束后才执行下一段代码,代码该如何写?我这样写,但好象不行://先启动线程
ThreadSendMail threadSendMail = new ThreadSendMail();
threadSendMail.start();//判断线程序是否线束.结束了再执行下一段代码
         
while (!threadSendMail.aLive()){
..........
}
各位,线程启动后立即去判断是否结束好象是有问题的,这时线程显然没有结束,但while这段代码就飘过了,没被执行,正确的表达应该是怎样的呢?多谢围观线程多线程

解决方案 »

  1.   

    多谢楼上!“一是在线程里加上状态(全局的状态变量)  当线程执行后 修改状态  供其他地方读取” 这个全局变量标志的改变是不是在RUN方法代码的最后进行?
      

  2.   

    嗯 线程run方法的最后一句或者return语句之前即可
      

  3.   

    使用handler处理不是更好吗,在线程结束时发送一个message,把你要执行的代码放在handler里。
      

  4.   

    在线程的末尾加上一个handler.sendMessage(Message msg),发送消息,然后就可以在Handler类里的handlerMessage(Message msg)执行你想要的操作
      

  5.   

    1. 观察者模式,回调函数
    2. Message