当前位置: 首页 > 知识库问答 >
问题:

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

东门焕
2023-03-14

用外行的话说,Java中的“可运行”是什么?我是一名高中AP编程专业的学生,其任务是做研究,或从其他人那里寻找“runnable”是什么(我们刚刚进入OOP,还没有接触到线程)。

共有2个答案

卫深
2023-03-14

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

interface Runnable {
    public void run();
}

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

它甚至不用做新的线就可以使用。它基本上是您的基本接口,只有一个可以调用的方法run。

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

还应该注意的是,线程实现可运行,并且在创建新线程时(在新线程中)调用。默认实现只调用您在构造函数中提交的任何Runnable,这就是为什么您可以只执行new Thread(someRunnable)而不重写Thread的run方法。

丌官晨
2023-03-14

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

Runnable接口要求类实现方法run(),如下所示:

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

然后像这样使用:

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

如果您没有Runnable接口,负责在另一个线程中执行您的东西的Thread类将无法promise在您的类中找到run()方法,因此您可能会收到错误。这就是为什么您需要实现接口。

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

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

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

 类似资料:
  • 问题内容: 用外行的话来说,Java中的“可运行”是什么?我是一名高中的AP编程学生,其任务是进行研究或从他人那里寻找“可运行的”是什么(我们只是进入OOP,并且还没有接触过线程)。 问题答案: 从本质上讲,Runnable是一类类(Runnable是一个接口),可以将其放入线程中,以描述该线程应该做什么。 该Runnable接口要求的类的实现方法如下所示: 然后像这样使用它: 如果您没有该接口,

  • 本文向大家介绍理解C#中的枚举(简明易懂),包括了理解C#中的枚举(简明易懂)的使用技巧和注意事项,需要的朋友参考一下 一、在学习枚举之前,首先来听听枚举的优点。   1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。   2、枚举使代码更易于维护,有助于确保给变量指定合法的、期望的值。   3、枚举使代码更易输入。 二、枚举说明 1、简单枚举 ●枚举使用enum关键字来声明,与类同级

  • 本文向大家介绍让你一句话理解闭包(简单易懂),包括了让你一句话理解闭包(简单易懂)的使用技巧和注意事项,需要的朋友参考一下 接触javascript很久了,每次理解闭包都似是而非,最近在找Web前端的工作,所以需要把基础夯实一下。 本文是参照了joy_lee的博客 闭包 在她这篇博客的基础上以批注的形式力争把我的理解阐述出来,如果有不当之处,欢迎批评指正。 《高级程序设计》上,这样说:当在函数内部

  • 本文向大家介绍什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释,包括了什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释的使用技巧和注意事项,需要的朋友参考一下 概述 关于PEAR,PECL这两个东西,初学PHP的时候就知道,但是貌似用的人很少再加上以前也是在Windows下做开发,所以了解的不多,现在转到Mac了,就把这两个东西彻底弄弄清楚。 什么是PEAR PEAR的

  • 本文向大家介绍简要解释一下Java中的String,StringBuffer和StringBuilder类之间的区别是什么?,包括了简要解释一下Java中的String,StringBuffer和StringBuilder类之间的区别是什么?的使用技巧和注意事项,需要的朋友参考一下 java.lang包的String类表示字符串。Java程序中的所有字符串文字(例如“ abc”)都实现为此类的实例

  • 假设我有多个要作为单个流处理的集合。最简单的方法是什么?是否有一个实用程序类可以为我做这件事,或者我必须自己滚动一些东西? 如果我的问题不清楚,这基本上就是我想做的: