"Runnable"在Java中是什么意思?以通俗易懂的方式解释。我是一名高中AP编程学生,我的作业是研究或向他人了解什么是“runnable”(我们刚刚开始学习面向对象编程,还没有涉及到线程)。
在Java中,“Runnable”是一个接口(interface),它表示一个可以运行的代码块,但是它本身不能直接运行。为了运行一个“Runnable”,需要使用Thread类来创建一个线程并将其传递给Thread的构造方法。这样,该线程就可以运行“Runnable”中的代码块。"Runnable"在Java中是什么意思?以通俗易懂的方式解释。我是一名高中AP编程学生,我的作业是研究或向他人了解什么是“runnable”(我们刚刚开始学习面向对象编程,还没有涉及到线程)。
在Java中,“Runnable”是一个接口(interface),它表示一个可以运行的代码块,但是它本身不能直接运行。为了运行一个“Runnable”,需要使用Thread类来创建一个线程并将其传递给Thread的构造方法。这样,该线程就可以运行“Runnable”中的代码块。可运行体(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();
run
方法完成,然后线程关闭。如果您希望线程一遍又一遍地运行,请在run
方法中放置一个循环。 - opatutnew Thread(() -> System.out.println("hello from other thread")).start();
- GabeRunnable
是一个被定义如下的接口:
interface Runnable {
public void run();
}
要创建使用它的类,只需将类定义为(public) class MyRunnable implements Runnable {
甚至可以不创建新线程就可使用它。它基本上是具有单个方法(run)的基本接口,该方法可以被调用。
如果使用runnable作为参数创建新线程,则会在新线程中调用run方法。
还应注意到线程实现了Runnable
,当新线程创建时(在新线程中),就会调用这个接口。默认实现只调用您在构造函数中传递的任何Runnable,这就是为什么您可以只执行new Thread(someRunnable)
而无需覆盖Thread的run
方法。
Thread
,线程池会很困难,而如果不实现线程池,则需要显著付出创建新线程的成本。 相比之下,只需实现Runnable
就可以轻松使用诸如ThreadPoolExecutorService
或第三方线程池等工具。 - Stephen C