首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在一个简单易懂的解释中,在Java中什么是可运行的?

在一个简单易懂的解释中,在Java中什么是可运行的?
EN

Stack Overflow用户
提问于 2012-11-11 08:45:44
回答 2查看 118K关注 0票数 105

用外行的术语来说,Java中的"runnable“是什么?我是一名高中AP编程的学生,我的任务是做研究,或者从别人那里寻找"runnable“是什么(我们刚刚进入OOP,还没有接触到线程)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-11 08:50:18

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

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

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

然后像这样使用它:

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

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

高级:匿名类型

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

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

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

票数 200
EN

Stack Overflow用户

发布于 2012-11-11 08:50:58

Runnable是这样定义的接口:

interface Runnable {
    public void run();
}

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

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

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

还应该注意的是,线程实现了Runnable,当创建新的线程(在新的线程中)时就会调用它。默认实现只是调用你交给构造函数的Runnable,这就是为什么你可以在不覆盖线程的run方法的情况下只做new Thread(someRunnable)的原因。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13327571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档