未来不完整?

2023-12-09

object Executor extends App {
  implicit val system = ActorSystem()
  implicit val materializer = ActorMaterializer()
  implicit val ec = system.dispatcher
  import akka.stream.io._
  val file = new File("res/AdviceAnimals.tsv")
  import akka.stream.io.Implicits._
  val foreach: Future[Long] = SynchronousFileSource(file)
    .to( Sink.outputStream(()=>System.out))
    .run()

  foreach onComplete { v =>
    println(s"the foreach is ${v.get}")  // the will not be print
  }
}

但如果我改变Sink.outputStream(()=>System.out) to Sink.ignore, the println(s"the foreach is ${v.get}")将打印。

有人可以解释为什么吗?


您不会等待流完成,相反,您的 main 方法(Executor 的主体)将完成,并且由于 main 方法完成退出,JVM 将关闭。

您想要做的是阻止该线程,并且在未来完成之前不退出应用程序。

object Executor extends App {
  // ...your stuff with streams...
  val yourFuture: Future[Long] = ???

  val result = Await.result(yourFuture, 5 seconds)
  println(s"the foreach is ${result}")

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

未来不完整? 的相关文章

随机推荐

  • 如何获取模型观察者中的current_user?

    给定以下模型 Room id title RoomMembers id room id RoomFeed also an observer 当房间标题更新时 我想创建一个 RoomFeed 项目 显示进行更新的用户是谁 room updat
  • 在 Youtube api 中创建播放列表

    我看过 Youtube 的文档 但我似乎不明白如何为用户专门为 ios 创建播放列表 我知道用户需要使用 OAuth 2 登录来授予应用程序访问 权限来创建播放列表 文档链接 https developers google com yout
  • https 是否保留在相对表单操作 URL 上?

    考虑一个带有通过 https 访问的表单的页面 如果表单操作具有表单页面的相对 URL 是否保留 https 协议 例如 您访问 https example com cart html 其中包含表单标签
  • 如何在不使用 printf 的情况下打印指针地址

    我正在做一个练习 需要打印指针的内存 地址 这样做很容易printf p 但我不被允许使用它 你知道我如何在不使用的情况下获得地址吗printf 我唯一可以使用的功能是 写入 这是我的练习声明 编写一个函数 它需要 const void a
  • 在固定功能管道绘图中使用 FBO 将 OpenGL 场景渲染为纹理

    问题 我从事开源游戏 torcs 的工作 http torcs sourceforge net 游戏的图形管线仍然使用OpenGL 1 3的固定功能管线 FFP 我尝试将游戏场景渲染到 FBO 帧缓冲区对象 中的纹理 以便对渲染的纹理进行一
  • Android 上 SQLite 数据库的最大大小是多少?

    我有一个大小超过 2 6 GiB 的 SQLite 数据库 数据库包含地图 该数据库由 RMaps 应用程序使用 当以最大缩放比例将地图移动到某些部分时 应用程序突然关闭 但是 没有强制关闭消息 也没有报告按钮 所以 我有一个想法 它是由超
  • ArrayList<对象> JSON

    我正在尝试使用 Restlet 返回 JSON 数据 我可以使用以下命令返回单个项目的 JSON import org json JSONObject Site aSite new Site getSite JSONObject aSite
  • noSelectionOption 属性[重复]

    这个问题在这里已经有答案了 我是 JSF 新手 我遇到了noSelectionOptionJSF 2 0 中的属性 我不明白这个属性的目的 根据描述 它在需要选择并且用户选择时使用noSelectionOption导致验证错误 So if
  • 在字母表列表中查找缺失的字母

    我正在尝试解决以下问题 在传递的字母范围中找到丢失的字母并将其返回 如果所有字母都出现在该范围内 则返回 undefined 我将得到的字符串输入是 abce 应返回 d bcd 应该返回未定义 abcdefghjklmno 应该返回 i
  • 如何使用 MEF 获取 Visual Studio 扩展中的当前 ActiveDocument?

    我正在使用 MEF 开发 Visual Studio 2013 扩展 同时尝试读取 Active Document 内容类型和代码 目前 它仅在编辑器中打开文档 项目项时读取 一旦打开它们 每当我们在打开的文档选项卡之间切换时 它就不会再次
  • 根据路线删除@include

    我有一个菜单部分 其中包括一个输入搜索栏 但我不希望搜索栏在所有页面上都可见 而仅针对两个特定的 uri 有没有办法去除刀片中包含的内容 目前它看起来像这样 a href all a a href nes a a href snes a i
  • $在mongodb中过滤最多2个嵌套级别

    我有一个结构如下的数据库 Hospitais utis id 893910 nome UTI1 leitos id 128938120 paciente Oliver id 12803918239 paciente Priscilla
  • 满足条件时终止多处理进程

    我试图运行的想法是这样的 RUN 3 进程进行计算 一旦 3 个进程之一完成任务 立即杀死其他人并继续主要任务 我不能让它再运行下去 我尝试过的事情是 将全局变量放入 multiprocessing manager 但这仍然可以让进程完成循
  • Python pyodbc 使用 SQL Server 身份验证连接到 Sql Server

    窗口用户详细信息与我登录的Sql Server用户不同 因此我尝试使用用户名 Admin JJack 和密码使用pyodbc连接到数据库 但是窗口用户 Jack 的连接显示失败 我不知道哪里出了问题 我的连接字符串 connection p
  • 作为特定用户对 TFS 工作项进行更改

    我正在创建一个 Web 应用程序 我的团队中的用户将使用它 对 TFS 工作项进行更改 我正在为此使用 TFS API 为了访问 TFS 服务器 我在 Web 应用程序中使用了我的凭据 现在 每次有人使用该应用程序并对 TFS 工作项进行更
  • 根据列数据创建新的 Excel 行

    大家下午好 我遇到一个问题 我的用户拥有多个银行帐户详细信息 我需要尝试为每个拥有多个银行帐户的员工创建一个新行 并为第二个银行帐户分配一个新行 Employee Number User ID BSB Account number 1000
  • 使用 Airflow 运行 .EXE 和 Powershell 任务

    我们的系统基本上只是运行 C 和 Powershell 应用程序以及 MS SQL Server 的 Windows 服务器 我们有一个内部工作流程管理解决方案 能够运行执行 EXE BAT PS1 甚至调用 DLL 函数的任务 现在我正在
  • 重定向到 Amazon S3 静态网站中的错误页面

    我有一个存储桶并在其中启用了静态网站托管 假设我的存储桶中只有两个文件 index html 和 error html 如果使用 test html 命中请求 则会抛出访问被拒绝或不会抛出此类关键错误 如果出现此类错误 如何重定向到 err
  • 使用保留字作为属性名称,重新审视

    保留字可以用作对象的属性名称吗 这个问题是在之前的 Stack Overflow 问题中间接提出的 浏览器支持在 JavaScript 中使用保留字作为属性名称 答案似乎是普遍共识亚历克斯 韦恩 您可以使用这些单词 但只能作为字符串而不是速
  • 未来不完整?

    object Executor extends App implicit val system ActorSystem implicit val materializer ActorMaterializer implicit val ec