在一个简单易懂的解释中,Java中什么是Runnable?[已关闭]

2022-08-31 09:20:49

用外行的话来说,Java中的“可运行”是什么?我是高中时的AP编程学生,他的任务是做研究,或者从别人那里寻找“可运行”是什么(我们刚刚进入OOP,还没有触及线程)。


答案 1

Runnable基本上是一种可以放入线程中的类(Runnable是一个接口),描述线程应该做什么。

可运行接口要求类实现该方法,如下所示:run()

public class MyRunnableTask implements Runnable {
     public void run() {
         // do stuff here
     }
}

然后像这样使用它:

Thread t = new Thread(new MyRunnableTask());
t.start();

如果您没有接口,则负责在另一个线程中执行您的内容的 Thread 类将没有承诺在您的类中找到方法,因此您可能会收到错误。这就是您需要实现接口的原因。Runnablerun()

高级:匿名类型

请注意,您不需要像往常一样定义类,您可以以内联方式完成所有这些操作:

Thread t = new Thread(new Runnable() {
    public void run() {
        // stuff here
    }
});
t.start();

这与上面类似,只是您不创建另一个命名类。


答案 2

Runnable是一个接口,定义如下:

interface Runnable {
    public void run();
}

要创建一个使用它的类,只需将该类定义为(public) class MyRunnable implements Runnable {

它甚至可以在不创建新线程的情况下使用。它基本上是你的基本接口,只有一个方法,运行,可以调用。

如果创建一个以 runnable 作为参数的新线程,它将在新的 Thread 中调用 run 方法。

还应该注意的是,Threads实现了,并且在创建新线程(在新线程中)时调用。默认实现只调用您在构造函数中传递的任何 Runnable,这就是为什么您可以在不重写 Thread 的方法的情况下执行操作的原因。Runnablenew Thread(someRunnable)run


推荐