这里简单的总结下(大概思路,没调试,可能会有错!):
MyThread.java
代码如下 | 复制代码 |
pulbicclassMyThread implemets Thread{
@overide publicvoidrun{ while(!Thread.interrputed()){ } } } xxx.java
Thread mThread =newMyThread();
publicstaticvoidstartThread(){ mThread =newMyThread(); mThread.start(); }
publicvoidstopThread(){ if(mThread!=null){ mThread.interrupt(); mThread =null; } } |
run函数里面必须有判断中断状态的while循环,外部在中断Thread时,必须显示调用interrupt()。注意:interrupte()函数只是设置中断标志,不是强制中断,所以run中才需要不断地检测中断标志(Thread.interrupted())
java中,中断Thread后,就不能直接重新start了,必须new一个新实例,不然会报错。