📜  Thread类run()方法的重载(1)

📅  最后修改于: 2023-12-03 14:47:58.324000             🧑  作者: Mango

Thread类run()方法的重载

在Java中,Thread是一个重要的多线程类,而run()方法是Thread类的重要方法之一。Thread类提供了两个run()方法的重载,分别为无参和有参方法,接下来将对这两种方法进行详细介绍。

1. Thread类无参run()方法

Thread类中的无参run()方法是线程的核心代码块,当线程启动时,run()方法会自动执行。无参run()方法没有参数,它只是在子线程中被调用。

run()方法的语法如下所示:

public void run();

无参run()方法通常被重写以实现线程的具体功能。当一个线程被启动后,会自动调用run()方法,

下面是一个示例程序:

public class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running.");
    }

    public static void main(String[] args) {
        MyThread mt = new MyThread();
        mt.start();
    }
}

在上述代码中,我们创建了一个继承自Thread的子类MyThread,并在该子类中重写了run()方法。在main()方法中,我们创建了一个MyThread的实例,并调用它的start()方法来启动该线程。在线程启动后,run()方法会被自动调用,输出“Thread is running.”。

2. Thread类有参run()方法

Thread类中的有参run()方法与无参run()方法不同,它需要一个Runnable对象作为参数。这个Runnable对象中包含了线程的核心代码块。

run()方法的语法如下所示:

public void run(Runnable target);

以下是一个示例程序:

public class MyThread implements Runnable {
    public void run() {
        System.out.println("Thread is running.");
    }

    public static void main(String[] args) {
        MyThread mt = new MyThread();
        Thread t = new Thread(mt);
        t.start();
    }
}

在上述代码中,我们创建了一个实现了Runnable接口的类MyThread,并在这个类中重写了run()方法。在main()方法中,我们创建了一个MyThread的实例mt,并将它传入Thread类的构造方法中,创建了一个新的线程t。在线程启动后,run()方法会被自动调用,输出“Thread is running.”。

3. 总结

Thread类的无参run()方法和有参run()方法,都实现了线程的核心代码块。无参run()方法只需重写,而有参run()方法需要另外一个实现了Runnable接口的类作为参数。在编写多线程程序时,灵活掌握这两种run()方法,可以更好地实现多线程的功能。