java通过共享变量结束run停止线程的方法示例
stop()方法已经被弃用,原因是不太安全。api文档中给出了具体的详细解释。
通过interrupted()方法打断线程。不推荐。
通过共享变量结束run()方法,进而停止线程。如实例
public class threadinterrupt {
public static void main(string []args){
runner run = new runner();
run.start();
try {
thread.sleep(10000);
} catch (interruptedexception e) {
// todo auto-generated catch block
}
//run.stop();//已经废弃的方法,不建议使用,过于粗暴
//run.interrupt(); //抛出异常,但是在异常处理中写业务显然不合适,不建议使用
run.flag=false;//建议使用的停止线程的方法
}
}
class runner extends thread{
boolean flag = true;
public void run(){
/* while(true){
system.out.println(new date()+"----");
try {
sleep(1000);
} catch (interruptedexception e) {
// todo auto-generated catch block
system.out.println("interrupted");
return;
}
}
*/
while(flag){
system.out.println(new date()+"----");
try {
sleep(1000);
} catch (interruptedexception e) {
// todo auto-generated catch block
system.out.println("interrupted");
return;
}
}
}
}