我知道如果你想要线程,你可以扩展线程或者在 java 中实现可运行到多线程。但是为什么非要实现一个接口(interface)让java去线程呢?使 Java 线程工作的可运行接口(interface)的重要性是什么? Java 的接口(interface)是否从某物扩展而来?
最佳答案
Runnable
接口(interface)的唯一特殊之处在于它是Thread
在其构造函数中采用的内容。它只是一个普通的旧界面。
与大多数接口(interface)一样,要点是您正在根据契约(Contract)进行编程:您同意将要运行的代码放入Runnable#run()
实现中,并且 Thread
同意在另一个线程中运行该代码(当您使用它创建并启动 Thread
时)。
Thread
实际上是“执行”多线程(因为它与 native 系统交互)。 Runnable
的实现就是放置要告诉 Thread
运行的代码。
事实上,您可以实现一个 Runnable
并运行它,而无需让它在单独的线程中运行:
Runnable someCode = new Runnable() {
public void run() {
System.out.println("I'm a runnable");
}
};
someCode.run();
所以Runnable
本身与多线程没有任何关系,它只是在对象中封装一段代码时扩展的标准接口(interface)。
关于Java 线程 : How does implementing runnable work for threading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966044/