加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 09:06:01 所属栏目:安全 来源:网络整理
导读:来自 Java背景,在多个线程之间拆分多个任务的问题可以很容易地使用ExecutorService并通过该接口提交任务.你会说同样的方法在Scala世界中有意义吗?如果是这样,是否有该API的Scala版本? 如果不是,您会推荐什么方法?演员似乎有点过分,因为我认为它们主要用于
来自 Java背景,在多个线程之间拆分多个任务的问题可以很容易地使用ExecutorService并通过该接口提交任务.你会说同样的方法在Scala世界中有意义吗?如果是这样,是否有该API的Scala版本?

如果不是,您会推荐什么方法?演员似乎有点过分,因为我认为它们主要用于线程通信……

解决方法

纯粹的Scala方式

Scala的并发模型基于Erlang actor模型.这是一种略有不同的方法.要充分利用Scala的并发性,请使用类似Akka的东西.基本的使用思路非常简单.

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

> Akka
> Lift演员(使用Lift Web框架时).
> Finagle(Twitter RPC框架).
> Scala 2.10中的默认Scala actor库,DEPRECATED.阅读更多HERE.

Scala / Java互操作性方法

参与者可能会对您用于实现并发的方式进行重大改变,而Java在那里没有缺点.因此,您仍然可以在Scala应用程序中使用Executor框架进行多线程处理.

这意味着您几乎完全依赖于本机Java并发结构,但它会让您不得不进行更改.阅读有关如何在Scala HERE中执行此操作的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读