当前位置: 代码迷 >> Android >> 怎么判断线程结束?
  详细解决方案

怎么判断线程结束?

热度:52   发布时间:2016-05-01 09:49:10.0
如何判断线程结束?急急急
在一段代码中,启动一个线程,需要等到该线程结束后才执行下一段代码,代码该如何写?

我这样写,但好象不行:

//先启动线程
ThreadSendMail threadSendMail = new ThreadSendMail();
threadSendMail.start();

//判断线程序是否线束.结束了再执行下一段代码
         
while (!threadSendMail.aLive()){
..........
}


各位,线程启动后立即去判断是否结束好象是有问题的,这时线程显然没有结束,但while这段代码就飘过了,没被执行,正确的表达应该是怎样的呢?多谢围观
线程 多线程

------解决方案--------------------
嗯  是滴  因为启动线程后就不确定执行顺序了   所以会存在一定问题

有两种  一是在线程里加上状态(全局的状态变量)  当线程执行后 修改状态  供其他地方读取

二 可以在启动线程后  在当前线程 睡0.3s左右  防止判断条件执行太快  或者在线程结束后  向当前线程发送消息    
------解决方案--------------------
使用handler处理不是更好吗,在线程结束时发送一个message,把你要执行的代码放在handler里。
------解决方案--------------------
在线程的末尾加上一个handler.sendMessage(Message msg),发送消息,然后就可以在Handler类里的handlerMessage(Message msg)执行你想要的操作
------解决方案--------------------
一般不会去判断的,因为你要启动这个判断也要发送消息。

那不如直接发送消息好了。
------解决方案--------------------
用锁啊
------解决方案--------------------
1. 观察者模式,回调函数
2. Message
  相关解决方案