📜  Thread类run()方法的重载

📅  最后修改于: 2022-05-13 01:54:49.565000             🧑  作者: Mango

Thread类run()方法的重载

run() 方法的重载是可能的。但是 Thread 类的 start() 方法可以调用无参数方法。我们必须像普通方法调用一样显式调用另一个重载方法。

// Java Program to illustrate the behavior of
// run() method overloading
class Geeks extends Thread {
    public void run()
    {
        System.out.println("GeeksforGeeks");
    }
    public void run(int i)
    {
        System.out.println("Bishal");
    }
} 
  
class Test {
    public static void main(String[] args)
    {
        Geeks t = new Geeks();
        t.start();
    }
}

输出:

GeeksforGeeks

JVM为上述程序提供的运行时栈:

注意:重载的 run() 方法将被 Thread 类忽略,除非我们自己调用它。 Thread 类期望一个没有参数的 run() 并且在线程启动后将在单独的调用堆栈中执行。使用 run(int i),即使我们直接调用它,它也不会启动任何单独的调用堆栈。它将像任何其他方法一样位于同一个调用堆栈中(如果您从 run() 方法调用)。

例子:

// Java Program to illustrate the execution of
// program using main thread
class Geeks extends Thread {
    public void run()
    {
        System.out.println("GeeksforGeeks");
    }
    public void run(int i)
    {
        System.out.println("Bishal");
    }
} 
  
class Test extends Geeks {
    public static void main(String[] args)
    {
        Geeks t = new Geeks();
        t.run(1);
    }
}

输出:

Bishal
    JVM为上述程序提供的运行时栈:

相关文章:Thread类start()方法的重载覆盖