Java界面问题

ikp*_*ikp 4 java interface runnable

我很困惑(java新手):

实现Runnable接口时,必须覆盖run()方法以获取线程执行功能.实现此接口使您的对象成为Runnable(?)类型.如何通过简单地实现Runnable接口来"注入"线程功能?基本上,当您实例化一个实现Runnable的类时,在线程功能中会发生什么?我可能在这里误解了一些基本的OO概念.谢谢.

在执行thread.start()时,JVM是否"知道"寻找runnable?

Viv*_*sse 9

在创建实现时Runnable,没有什么可以将您的类与JVM的线程容量联系起来.该实例Runnable接口像任何其他接口的一个实例,只是一个实例.

如果要使用JVM的线程系统,则必须使用Thread该类的新实例,该实例将在单独的线程中运行实现run()方法Runnable.

关于创建新线程的所有逻辑都是由Thread类完成的.

  • 它就是啊.关键是Thread类的构造函数需要一个Runnable参数.谢谢! (3认同)
  • 我想在此添加一个注释:线程需要知道的是它应该做的事情.如果你能以某种方式将"函数"交给`Thread`对象,它应该能够在一个线程中"执行"它.因为在java中你不能拥有自由浮动的函数对象,所以你需要将它包装在一致的界面中(这里是一个`Runnable`).在一个支持函数式编程的语言中,你只需将一个函数交给一个类似Thread的类. (2认同)