我只是想了解下面的代码段如何工作?
class AnnaThread extends Thread {
public static void main(String args[]){
Thread t = new AnnaThread();
t.start();
}
public void run(){
System.out.println("Anna is here");
}
public void start(){
System.out.println("Rocky is here");
}
}
输出 - 洛基在这里
答案 0 :(得分:3)
没有太多要解释的。
start()
Rocky is here
start()
,打印Rocky is here
。run
方法)人们常常混淆start
和run
的目的。例如,请参阅此问题:
Why we call Thread.start() method which in turns calls run method?
规则很简单:
Thread.run
是一种普通的方法(没有魔法)
Thread.start
包含一些魔法因为它产生了一个单独的线程(并让该线程调用run
)。
Thread.start
,那么任何地方都没有任何魔力。答案 1 :(得分:0)
这里有一个Java类,它扩展了Thread类(http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html)
class AnnaThread extends Thread {
然后在您的main
方法中,您创建了一个new instance
类Thread
(自class extends the Thread
起)
public static void main(String args[]){
Thread t = new AnnaThread();
然后你调用下面的方法开始
t.start();
打印
System.out.println("Rocky is here");
如果在代码中添加以下行,也可以调用其他方法
t.run();
在这种情况下,将执行方法运行,这将打印
System.out.println("Anna is here");