📜  实现Runnable的内部类和匿名内部类|并发编程方法 3(1)

📅  最后修改于: 2023-12-03 15:39:08.479000             🧑  作者: Mango

实现Runnable的内部类和匿名内部类 | 并发编程方法 3

在并发编程中,实现 Runnable 接口是非常常见的。在 Java 中,实现 Runnable 接口有两种方式:使用内部类和匿名内部类。本篇文章将详细介绍这两种方式,并提供示例代码。

使用内部类实现

使用内部类实现 Runnable 接口的方式如下:

public class MyRunnableClass {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }

    private static class MyRunnable implements Runnable {
        @Override
        public void run() {
            System.out.println("MyRunnable is running!");
        }
    }
}

在这个例子中,我们创建了一个 MyRunnable 类,它实现了 Runnable 接口。我们然后在 main 方法中创建了一个 MyRunnable 实例,并将其传递给 Thread 的构造函数。最后,我们调用 start 方法启动线程,最终输出了 "MyRunnable is running!"。

使用匿名内部类实现

在 Java 中,我们还可以使用匿名内部类来实现 Runnable 接口。匿名内部类是一种没有名称的内部类,只在定义它的地方使用。使用匿名内部类实现 Runnable 接口的方式如下:

public class MyRunnableClass {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("MyRunnable is running!");
            }
        });
        thread.start();
    }
}

在这个例子中,我们在 Thread 的构造函数中定义了一个实现 Runnable 接口的匿名内部类。我们覆盖了 run 方法并输出了 "MyRunnable is running!"。最后,我们调用 start 方法启动线程。

使用匿名内部类的好处是可以将代码紧凑地放在一起,而不必定义一个单独的类。然而,对于较复杂的任务,使用具有明确名称的类可能更有帮助。

结论

在本文中,我们介绍了使用内部类和匿名内部类实现 Runnable 接口的两种方式。这两种方式在不同的情况下都可以很好地工作,具体取决于开发人员的首选方法。无论使用哪种方法,我们需要确保代码能够正确地完成任务并使用最佳的并发编程实践。