Java中的run()方法在Thread类中,run()方法是用空实现定义的。
如果我们run()在用户定义的线程中重写方法,则在run()方法中,我们将定义一个作业,而我们创建的线程负责执行run()方法。
强烈建议您覆盖run()方法,因为它可以提高系统的性能。
如果我们不在run()定义的线程中重写Thread类方法,run()则将执行Thread类方法,并且由于Thread类run()的实现为空,因此不会获得任何输出。
范例1:
在这里,我们将看到,如果我们重写Thread类的run(),会发生什么?class OverrideRunMethod extends Thread{
public void run(){
System.out.println("I am in run() method");
}
}
class MainMethodClass{
public static void main(String[] args){
OverrideRunMethod orn = new OverrideRunMethod();
orn.start();
}
}
输出结果D:\Java Articles>java MainMethodClass
I am in run() method
范例2:
在这里,我们将看到,如果不重写Thread类run()会发生什么?abstract class NotOverridableRunMethod extends Thread{
abstract public void run();
}
class ParentMain{
public static void main(String[] args){
OverrideRunMethod orn = new OverrideRunMethod();
orn.start();
System.out.println("Thread class run() method will be executed with empty implementation");
}
}
当我们调用start()Thread类的方法时。它将执行一些任务,例如调用run()方法和分配线程调度程序等。run()如果run()方法不存在,首先将执行新创建的线程,然后将检查其父类(线程类)是否存在,然后run()将其方法执行。
输出结果D:\Java Articles>java ParentMain
Thread class run() method will be executed with empty implementation
I am in run() method