在Java中,是否有一个Runnable版本旨在在当前线程中执行?

2023-11-30

JavaDoc for Runnable 状态(已添加强调)

Runnable 接口应该由任何其类实现 实例旨在由线程执行。 该类必须定义一个名为 run 的无参数方法。

该接口旨在为希望在活动时执行代码的对象提供通用协议。例如,Runnable是由Thread类实现的。处于活动状态仅仅意味着线程已经启动并且尚未停止。

此外,Runnable 提供了使类处于活动状态而不需要子类化 Thread 的方法。实现 Runnable 的类可以通过实例化 Thread 实例并将其自身作为目标传递来运行,而无需子类化 Thread。在大多数情况下,如果您只计划重写 run() 方法而不重写其他 Thread 方法,则应使用 Runnable 接口。这很重要,因为除非程序员打算修改或增强类的基本行为,否则不应对类进行子类化。

有几个人(包括构建我正在使用的代码分析工具的人)从该声明中推断出这样一个前提:Runnable 只能用于旨在由单独线程执行的类。总的来说,我认为这就是 Runnable 接口的意图,并且我喜欢按照作者的意图使用代码。

我想要一个在当前线程上执行一些工作的类的通用接口。我更愿意使用行业标准(如果存在)。我不需要如何编写自己的界面的示例 - 我只是想知道是否已经存在。


所有正在运行的代码都是由线程执行的!无论是新线程还是当前线程,它仍然是一个线程。就是这样Callable描述它:

Callable 接口与 Runnable 类似,两者都是为实例为潜在地由另一个线程执行。

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

这可能是:

  • 在特定线程上,如SwingUtilities.invokeAndWait.
  • 在任意新线程上,如Executors.newSingleThreadScheduledExecutor.
  • 在线程池上,就像Executors.newCachedThreadPool

在我们的多核世界中,这应该不重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中,是否有一个Runnable版本旨在在当前线程中执行? 的相关文章

  • 使用 Java 编辑 jpeg EXIF 数据

    我想编辑 jpg 文件的属性 例如 评论 标题 拍摄日期 相机制造商等 我找到了读取这些数据的库 但我需要一个free带有示例的库edit them 我知道 apache 的成像 sanselan 但我无法用它编辑数据 如果您以前自己使用过
  • 将 Uri 转换为字符串以及将字符串转换为 Uri

    我正在开发一些应用程序 它允许从 SD 卡中选择图像 将其保存到数据库中并为 ImageView 设置该值 我需要知道将 uri 转换为字符串以及将字符串转换为 uri 的方法 现在我使用了 Uri 的 getEncodedPath 方法
  • Java NIO Pipe 与 BlockingQueue

    我刚刚发现它只有一个 NIO 工具 即 Java NIO Pipe 它是为在线程之间传递数据而设计的 与通过队列 例如 ArrayBlockingQueue 传递的更传统的消息相比 使用此机制是否有任何优势 通常 将数据传递给另一个线程进行
  • Zuul不转发请求到其他微服务

    我正在使用 Spring Boot 微服务 我已经配置了 eureka zuul 代理和另一个微服务 帐户 如果我直接从帐户拨打电话 则工作正常 帐户和 zuul 服务器都显示在 eureka 上 当我尝试使用 zuul 代理进行访问时 它
  • Java 访问被拒绝

    C Program Files x86 Java jdk1 6 0 17 bin gt javac VendingMachine java VendingMachine java 27 error while writing Vending
  • JaxB2Marshaller 未将 XML 绑定到 Kotlin 数据类

    我正在编写一个批处理作业来解析 XML 提取字段并将它们保存在数据库中 解析 XML 时 它会选取 2 个根元素 但将所有字段保留为空 因此在我的数据库中 我有 2 条记录将为空字段 似乎无法弄清楚为什么它无法读取元素 TIA Bean f
  • 涉及数学的方法给出与计算器不同的答案

    我是java新手 所以请耐心等待 我试图从比赛总数中获得胜利的百分比 但我正在做的事情还很遥远 我获取百分比的方法如下 public double winPercentage int wins int total return wins t
  • 高负载应用程序的数据库可扩展性?

    我见过一些应用程序拥有集群 Web 服务器 例如 10 到 20 个服务器 以具有可扩展性 可以在其中分发 在网络服务器之间加载 但我总是看到所有网络服务器都使用单个数据库 现在考虑任何电子商务或铁路 Web 应用程序 其中有数百万用户在任
  • 从java应用程序发送电子邮件时出现异常:中继被拒绝

    我们正在使用 Spring Mail 从 java 应用程序发送电子邮件 org springframework mail javamail JavaMailSenderImpl Spring电子邮件配置是
  • Java Swing 自定义形状(2D 图形)

    我需要绘制自定义形状 现在 当用户单击面板上的几个点时 我使用多边形创建一个形状 public void mouseClicked MouseEvent e polygon addPoint e getX e getY repaint 但我
  • 创建UML图时应该编写构造函数吗?

    我有一项作业要求我为实际的 Java 程序创建 UML 图 但程序中有几个构造函数方法 我很困惑 我是否应该将这些构造函数方法添加到图中 根据 UML 规范 2 5 版第 11 4 4 节 构造函数是一个具有所属类类型的单个返回结果参数的操
  • 从两个数组中查找公共文件

    我正在尝试从两个数组中查找通用名称文件 我已将两个不同文件夹的文件名保存在两个不同的数组中 现在我正在创建一个通用文件数组 其中包含具有通用名称的文件 filenames 1 包含文件夹 1 中文件名称的数组 filename2 包含文件夹
  • 无法安装 JDK 9,因为“另一个 Java 安装正在进行中”

    我已经在 Windows 10 x64 上使用 JDK 9 一段时间了 但是当我去安装最新的早期版本 b174 时 我首先卸载了以前的版本 像往常一样 然后运行新的安装程序 它失败并显示一个消息框 显示 另一个 Java 安装正在进行中 您
  • Java 8 中函数类型全等 lambda 表达式的用法

    我对 的定义和用法感到困惑 Stream collect Supplier
  • 使用 GSON 将 JSON 字符串转换为 Java 对象

    我正在尝试将 json 解析为 java 根据 jsonlint com 我有以下字符串 该字符串是有效的 json private final static String LOC JSON lat1 39 737567 lat2 32 7
  • Android 调整图片大小

    我的图像存储在 SD 卡上 每个大小约为 4MB 我想调整每个的大小 而不是将其设置为 ImageView 但我不能使用BitmapFactory decodeFile path 因为异常 java lang OutOfMemoryErro
  • Spring MVC 和复选框

    我正在使用 Spring MVC 3 0 并且不能完全看到这个问题的所有部分 我的控制器将生成一个域对象列表 假设有一个简单的 User 对象 具有firstName lastName age 和role 属性 我想在表中输出该用户列表 每
  • java银行程序帐户ID不上去?

    每次创建银行帐户时 帐户 ID 都应增加 1 但每次我尝试提取 Id 时 我只会得到帐户 ID 为 0 任何建议 因为我完全按照我学习的书中的方式进行操作而且它仍然没有更新 帐户构造函数 public class BankAccount p
  • 将菜单添加到空活动

    我在 Android Studio 中制作了一个 Android 应用程序 并想在其上创建一个选项菜单 我将其创建为一个空活动 现在意识到我最好创建一个空白活动来获取选项菜单 无论如何 是否可以在空活动中创建选项菜单 如果有人能给我指出一个
  • 应用程序中 GC 长时间暂停

    我当前运行的应用程序需要最大堆大小为 16GB 目前我使用以下标志来处理垃圾收集 XX UseParNewGC XX UseConcMarkSweepGC XX CMSInitiatingOccupancyFraction 50 XX Di

随机推荐

  • 在 Firebase Cloud Messaging 中将一个项目用于多个应用程序的优缺点

    在我们公司 我们有许多适用于 Android 和 iOS 的应用程序 我们想使用 Firebase 来推送通知 那么 我们是否需要创建新的project在每个应用程序的 Firebase 中 或者只使用一个包含所有应用程序的项目会更好吗 两
  • Neo4j Cypher:复制关系并删除节点

    我正在尝试复制节点的所有内部关系 n 到另一个节点 m 两个女巫我都知道id 在删除之前 n 但我无法提出代码 这些关系可能存在也可能不存在 有人摘录吗 您将无法从关系集合中动态创建关系类型 假设即使我们收集所有传入关系如下 START n
  • VB6 中是否有导出函数(而不是类)的方法?

    我想从 Visual Basic 6 创建一个 ActiveX DLL 我想从中调用一些公共函数 我将仅从 VB6 调用此 DLL 然而 似乎只有类被导出 有什么解决方法吗 我知道有一种方法可以使用标准 WINAPI 函数从 VB6 创建
  • 将两个 Xpath 组合成一个循环?

    我正在使用 xpath 从文档中获取信息 唯一的问题是我无法将它们组合成 1 个 for 循环 以便信息在页面上正确显示 我的代码是
  • 从 UI 选择特定时区时在 javascript/jquery 中添加类

    我正在编写如下所示的 html 代码 该代码来自此url In it 显示在 ET 时区下显示 100 正确 因为它们属于正确的日期但对于其他时区 PT MT CT AT NT 某些节目的日期不正确 代码下方的屏幕截图属于该类日程操作栏从下
  • Mysql自动更新事件

    使用 php 和 MySql 无论如何都可以在日期过期时获取数据库中的日期以自行更新 即事件名称 x 的日期为 2012 05 12 在 2012 05 13 日期应更改为 2012 05 19 从 2012 05 12 算起一周 多谢你们
  • 在哪里初始化托管 C++/CLI DLL?

    使用 C CLI 创建 DLL 时 或者我应该问 是否存在与 DllMain 等效的东西 这段初始化代码中不能调用的内容是否有任何限制 Dan 关于加载器锁 C CLI 的 CLR 延迟加载以及混合模式二进制文件的正确初始化 我昨天刚刚在这
  • Pyqt:从函数“动态”附加到 qtextedit

    我的 pyqt gui 中有一个按钮 单击该按钮会运行一个函数 该函数会执行一些冗长的数学计算 在这个函数中有很多打印语句 例如 print finished calculating task1 going on to task2 因此 通
  • java中用simplexml反序列化xml

    我正在尝试使用 SimpleXML 反序列化 xml 字符串 我查看了他们的示例 但我不确定我是否掌握了这个概念 示例 XML 验证
  • 生成不带foreignObject标签的svg

    我在用dom to image js插入 问题是 它会生成一个
  • 如何从HttpClient获取json文件?

    我正在尝试获得一个json文件来自HttpClient 但是当我添加时出现错误 subscribe imports import Injectable from angular core import HttpClient HttpHead
  • 检查文件中的行是否以特定字符串开头 - 进行一些计算

    所以这就是我想做的 我有一个巨大的文件 我想在 python 中打开它并查看每一行 如果它与某个预定的字符串匹配 我想获取紧随该字符串之后的数字 将它们全部加起来并得到平均值 该文件如下所示 Data Number of hours 34
  • 在 wpf 中拖放路径

    是否可以使用鼠标事件处理程序在 wpf 中拖放路径 特别是 我想用鼠标左键拖动路径并将其放置在网格上 如何才能做到这一点 尝试这个 鉴于 文本框名称为 TextBox1 public MainWindow Initialize UI Ini
  • 如何避免 Qt app.exec() 阻塞主线程

    我是 Qt 新手 但需要解决一个难题 我创建了一个非常简单的 GUI 我需要将其添加到现有的 C 应用程序中 问题是 我只编写了一个插入更大架构的模块 这限制了我对主线程的访问 我的代码必须驻留在以下四个函数中 Init 函数 在主线程中运
  • 到底如何在后台线程上渲染 Metal?

    这个问题是由用户界面交互引起的 例如全屏显示标题栏 该问题的答案提供了解决方案 但没有提供如何解决实施那个解决方案 解决办法是在后台线程上渲染 问题是 苹果提供的代码涵盖了很多内容 所以大部分都是无关的代码 所以即使我能理解它 使用苹果的代
  • 在 Django 中提交表单时不会调用基于通用类的视图中的 post 方法?

    我写了一个 mixin 来覆盖POST and get from kwargs of CreateView 我在做AJAX提交我的表格 我看到get from kwargs通过在控制台上打印来调用 但没有其他方法 例如post form v
  • Espresso 和 Android 联系人选择器

    我尝试使用 Espresso 的 Android 联系人选择器添加联系人 但这不起作用 这是调用联系人选择器的命令 Intent intent new Intent Intent ACTION PICK ContactsContract C
  • 实体框架/Linq to SQL:跳过并获取

    只是好奇 Skip Take 应该如何工作 我得到了我想要在客户端看到的结果 但是当我连接 AnjLab SQL Profiler 并查看正在执行的 SQL 时 它看起来好像正在查询并将整个行集返回到客户 它真的会返回所有行 然后在客户端使
  • 从 WebBrowserControl 中单击的 HtmlElement 获取 XPath

    如何从 WebBrowserControl 中单击的 HtmlElement 获取 XPath 这是我检索单击的 HtmlElement 的方法 System Windows Forms HtmlDocument document this
  • 在Java中,是否有一个Runnable版本旨在在当前线程中执行?

    JavaDoc for Runnable 状态 已添加强调 Runnable 接口应该由任何其类实现 实例旨在由线程执行 该类必须定义一个名为 run 的无参数方法 该接口旨在为希望在活动时执行代码的对象提供通用协议 例如 Runnable