new Thread(){
public void run() {
super.run();
}
}.start();
new Thread(new Runnable() {
public void run() {
}
}).start();
这2种方法有什么区别?为什么用上面这种有问题
new Thread(){
public void run() {
super.run();
}
}.start();
new Thread(new Runnable() {
public void run() {
}
}).start();
这2种方法有什么区别?为什么用上面这种有问题
第一种方法Thread的start方法只能调用一次,执行完之后不能再调用否则就会出错,下面的方法则不会。
第一种方法,start的源码里面有如下结构
while(falg){
}
flag刚开始为true,start执行完之后,flag置为false,循环体不会再执行,所以运行结果会出错