gpt4 book ai didi

Scala - 应该使用 ExecutorService 在线程之间拆分工作吗?

转载 作者:行者123 更新时间:2023-12-01 10:01:02 25 4
gpt4 key购买 nike

来自 Java 背景,在多个线程之间拆分多个任务的问题可以很容易地使用 ExecutorService 并通过该接口(interface)提交任务。你会说同样的方法在 Scala 世界中有意义吗?如果是这样,是否有该 API 的 Scala 版本?

如果没有,你会推荐什么方法? Actor 似乎有点矫枉过正,因为我认为它们主要用于线程通信......

最佳答案

纯 Scala 方式

Scala 的并发模型基于 Erlang Actor 模型。这是一种略有不同的方法。要充分利用 Scala 的并发性,请使用 Akka 之类的东西。基本的使用思路相当简单。

最简单的任务是使用 Future (异步操作)。阅读更多信息 HERE . Executors 框架不是您应该采用的方法。实现强大的多线程有很多选择| Scala 应用程序中的并行性:

  • Akka
  • Lift Actor (使用 Lift web 框架时)。
  • Finagle (Twitter RPC 框架)。
  • 默认的 Scala Actor 库,在 Scala 2.10 中已弃用。阅读更多 HERE .

  • Scala/Java 互操作性方法

    Actor 可能对您习惯于实现并发的方式产生巨大的变化,而 Java 在这方面没有缺点。因此,您仍然可以在 Scala 应用程序中使用 Executor 框架进行多线程处理。

    这意味着您将几乎完全依赖 native Java 并发结构,但它使您不得不进行大量更改。阅读更多关于如何在 Scala 中做到这一点 HERE .

    关于Scala - 应该使用 ExecutorService 在线程之间拆分工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177418/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com