用外行的话来说,Java 中的“可运行”是什么?我是一名高中 AP 编程的学生,我的任务是做研究,或者从别人那里寻找什么是“可运行的”(我们刚刚进入面向对象编程,还没有触及线程)。
Runnable 基本上是一种类(Runnable 是一个 Interface) ,它可以放到一个线程中,描述线程应该做什么。
可运行接口要求类像下面这样实现方法 run():
run()
public class MyRunnableTask implements Runnable { public void run() { // do stuff here } }
然后像这样使用它:
Thread t = new Thread(new MyRunnableTask()); t.start();
如果您没有 Runnable接口,则负责在另一个线程中执行您的内容的 Thread 类将无法承诺在您的类中找到 run()方法,因此您可能会得到错误。这就是为什么需要实现接口。
Runnable
请注意,您不需要像通常那样定义一个类,您可以在内联中完成所有这些工作:
Thread t = new Thread(new Runnable() { public void run() { // stuff here } }); t.start();
This is similar to the above, only you don't create another named class.
Runnable是这样定义的接口:
interface Runnable { public void run(); }
要创建一个使用它的类,只需将该类定义为 (public) class MyRunnable implements Runnable {
(public) class MyRunnable implements Runnable {
It can be used without even making a new Thread. It's basically your basic interface with a single method, run, that can be called.
如果创建一个以 runnable 作为参数的新 Thread,它将在一个新的 Thread 中调用 run 方法。
还应该注意的是,线程实现了 Runnable,并且在生成新线程时(在新线程中)调用这个 Runnable。默认实现只调用您在构造函数中提交的 Runnable,这就是为什么您可以只执行 new Thread(someRunnable)而不重写 Thread 的 run方法。
new Thread(someRunnable)
run