用外行的术语来说,Java中的"runnable“是什么?我是一名高中AP编程的学生,我的任务是做研究,或者从别人那里寻找"runnable“是什么(我们刚刚进入OOP,还没有接触到线程)。
发布于 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();
这与上面的类似,只是您不需要创建另一个命名类。
发布于 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)
的原因。
https://stackoverflow.com/questions/13327571
复制相似问题