我们可以使用直接运行方法,如下面的类所做.它产生与我们使用t1.start();时相同的结果.有没有理由只使用start方法来调用run?
public class runcheck extends Thread{
public void run(){
System.out.println(" i am run");
}
public static void main(String args[]){
runcheck as = new runcheck();
Thread t1 = new Thread(as);
t1.run();
}
}
Run Code Online (Sandbox Code Playgroud)
是的,但它将在同一个线程中运行.它等同于在普通对象上调用方法.
start()是你想要的.它调用一个native实际生成操作系统Thread来执行run()代码的方法.