在一个简单易懂的解释中,Java中的Runnable是什么?
用通俗的话来说,Java中的“runnable”是什么? 我是高中的AP编程学生,他的任务是做研究,或者从别人那里寻找“runnable”(我们正在进入OOP,还没有触及线程)。
一个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类将没有承诺在你的类中findrun()
方法,所以你可能会遇到错误。 这就是为什么你需要实现接口。
高级:匿名types
请注意,您不需要像往常一样定义类,您可以执行所有内联操作:
Thread t = new Thread(new Runnable() { public void run() { // stuff here } }); t.start();
这与上面类似,只有你不创build另一个命名类。
Runnable
是一个定义如下的接口:
interface Runnable { public void run(); }
要创build一个使用它的类,只需将类定义为(public) class MyRunnable implements Runnable {
它甚至可以使用,甚至没有一个新的线程。 它基本上是一个单一的方法的基本接口,运行,可以调用。
如果使用runnable创build一个新的线程作为参数,它将在新线程中调用run方法。
还应该注意的是,线程实现了Runnable
,并且在新线程(在新线程中)时被调用。 默认实现只是调用您在构造函数中递交的任何Runnable,这就是为什么您可以在不重写Thread的run
方法的情况下执行new Thread(someRunnable)
。