一、正常运行结束
程序运行结束,线程自动结束。
二、使用退出标志退出线程
一般 run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。它们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如:最直接的方法就是设一个 boolean 类型的标志,并通过设置这个标志为 true 或false 来控制 while循环是否退出,代码示例 :
public class ThreadSafe extends Thread { public volatile boolean exit = false; public void run() { while (!exit) { //do something } } }
定义了一个退出标志exit,当exit为true时,while循环退出,exit的默认值为false。
在定义exit时,使用了一个Java关键字volatile,这个关键字的目的是使exit同步,也就是说在同一时刻只能由一个线程来修改exit的值。
三、Interrupt方法结束线程
使用 interrupt()方法来中断线程有两种情况:
文章评论