我们可以使用直接运行方法,如下面的类所做。它产生了相同的结果 就像我们使用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();
}
}
答案 0 :(得分:8)
是的,但它将在同一个线程中运行。它等同于在普通对象上调用方法。
start()
就是你想要的。它调用实际生成操作系统native
的{{1}}方法来执行Thread
代码。
答案 1 :(得分:1)
答案 2 :(得分:0)
是的,您可以直接从run
方法调用main
,在这种情况下,main
方法和run
方法会一个接一个地运行。
顺序
main -> t.run() -> main
- 只有1个帖子
但是,如果您在实例start
上调用t1
方法,那么run
方法和main
方法会并行运行。
main -> t.start() -> main
- 第一个帖子
run()
- 第二线程。