1.早期Java提供java.lang.Thread类型包含了一些列的方法start(),stop(),stop(Throwable)andsuspend(),destroy()andresume()。,Sun公司的一篇文章《Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?》
2.使用volatile变量来设置Thread的run的循环条件
public class JavaTest extends Thread{
private volatile boolean isRun = true;
public static void main(String[] args) {
JavaTest thread = new JavaTest();
thread.start();
thread.close();
}
@Override
public void run() {
while (isRun) {
//dosomething
}
}
public void close() {
this.isRun = false;
}
}
3.使用interrupt()来中止非运行状态的线程,如wait()和sleep()状态的线程
public class JavaTest extends Thread{
private volatile boolean isRun = true;
public static void main(String[] args) {
JavaTest thread = new JavaTest();
thread.start();
thread.close();
if (thread != null) {
thread.interrupt(); //外围调用关闭
}
}
@Override
public void run() {
while (isRun) {
//dosomething
try {
wait(); //同样适用于sleep等状态
} catch (InterruptedException e) {
//catch Exception
}
}
}
public void close() {
this.isRun = false;
}
}