首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中,是否有要在当前线程中执行的Runnable版本?

在Java中,是否有要在当前线程中执行的Runnable版本?
EN

Stack Overflow用户
提问于 2015-04-07 17:55:59
回答 5查看 716关注 0票数 1

可运行状态的JavaDoc (重点添加)

Runnable接口应该由其实例要由线程执行的任何类实现。类必须定义一个没有参数的方法,称为run。 此接口旨在为希望在活动时执行代码的对象提供通用协议。例如,Runnable是由类Thread实现的。活动意味着线程已经启动,但尚未停止。 此外,Runnable还提供了类是活动的,而不是子类Thread。实现Runnable的类可以通过实例化线程实例并将自身作为目标传入来运行而无需子类线程。在大多数情况下,如果您只打算覆盖run()方法而没有其他线程方法,则应该使用Runnable接口。这一点很重要,因为类不应该被子类化,除非程序员打算修改或增强类的基本行为。

有几个人(包括构建我正在使用的代码分析工具的人)从该语句中推断了一个前提,即Runnable只应用于打算由单独的线程执行的类。总的来说,我认为这就是可运行的接口的意图,我喜欢使用作者想要的代码。

我想要一个在当前线程上做一些工作的类的通用接口。如果有行业标准的话,我宁愿使用它。我不需要如何编写我自己的接口的例子-我只是想知道是否已经存在一个接口。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-07 18:05:09

查看java.util.concurrent.Executor.execute(Runnable命令)。虽然它接受Runnable,但是API表示Executor接口并不严格要求执行是异步的。在最简单的情况下,执行器可以在调用者的线程中立即运行提交的任务

票数 1
EN

Stack Overflow用户

发布于 2015-04-07 18:01:15

所有正在运行的代码都由线程执行!不管是新线程还是当前线程,它仍然是一个线程。下面是可赎回对它的描述:

可调用接口类似于Runnable,因为这两个接口都是为实例为的类设计的,这些类的实例可能是由另一个线程执行的

Runnable的要点是,您不必关心线程结构,只需传递可执行代码。

这可能是:

在我们的多核世界里,这不重要。

票数 4
EN

Stack Overflow用户

发布于 2015-04-07 18:01:16

当前线程是一个线程。要在当前线程上执行可运行的线程,只需调用

代码语言:javascript
复制
myRunnable.run();

这就是BTW,一些标准课程所做的。参见例如CallerRunsPolicy

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29498017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档