1. 线程的生命周期开始于start()方法,终止于run()函数运行结束。
2. 守护线程的生命周期还和JVM有关系,当别的线程都dead时,JVM会kill掉所有守护线程然后退出。
3. 怎么优雅的kill掉一个线程呢?就是想办法让它的run函数结束,比如这么写run()函数:
public void run() {
try {
while(!Thread.currentThread().isInterrupted()) {
// ...
}
} catch (InterruptedException consumed)
/* Allow thread to exit */
}
}
然后在你kill掉它的地方写:
public void cancel() { interrupt(); }
阅读(1098) | 评论(0) | 转发(0) |