用外行的话来说,Java 中的“可运行”是什么?我是一名高中AP编程学生,任务是做研究,或者从别人那里寻找“可运行”是什么(我们刚刚进入OOP,还没有接触过线程)。
问问题
121494 次
2 回答
204
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 类就不会承诺run()
在你的类中找到方法,所以你可能会出错。这就是为什么你需要实现接口。
高级:匿名类型
请注意,您不需要像往常一样定义一个类,您可以内联完成所有这些:
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
}
});
t.start();
这与上面类似,只是您不创建另一个命名类。
于 2012-11-11T00:50:17.567 回答
10
Runnable
是这样定义的接口:
interface Runnable {
public void run();
}
要创建一个使用它的类,只需将类定义为(public) class MyRunnable implements Runnable {
它甚至可以在不创建新线程的情况下使用。它基本上是您的基本界面,只有一个可以调用的方法 run。
如果你创建一个新的线程,它的参数是runnable,它会在一个新的线程中调用run方法。
还应该注意 Threads 实现Runnable
,并且在创建新线程时调用(在新线程中)。默认实现只是调用您在构造函数中提交的任何 Runnable,这就是为什么您可以在new Thread(someRunnable)
不覆盖 Threadrun
方法的情况下执行此操作。
于 2012-11-11T00:50:57.643 回答