gpt4 book ai didi

scala - 并发概述

转载 作者:行者123 更新时间:2023-12-04 21:17:15 25 4
gpt4 key购买 nike

由于 Scala 提供了一个很好的套件来处理并发(Akka、并行集合、 future 等),这也让我有点困惑。是否有某种指导方针何时使用什么?某种最佳实践?

最佳答案

首先,concurrency != parallelism .后者可以用于解决您基本上以顺序方式推理的问题,但可以有效地将其划分为可以独立处理的块(在最终再次组合在一起之前)。例如,映射和过滤集合,这将是并行集合的场景。

其他一些人对 actors versus futures 进行了推理.简而言之,actor 更像是面向对象的,因为每个 actor 都可以封装自己的内部状态,它们更像是黑匣子。参与者并发性也是不确定的,而数据流和 future 是确定性的。当您想在多台计算机上分配任务时,Actor 是一个自然的选择。 Actors 可以接受多种类型的消息,而 future 允许在一种特定类型上进行函数组合。 (这是简化的,因为 Akka 现在有类型 channel ,我想这使它更易于组合)。 Actors 适用于等待请求的服务,而 futures 可以被认为是懒惰的答案。

如果你有多个并发线程,software transactional memory (STM)也是一个有用的抽象。 STM 本身不管理线程池或并发任务,但当与它们结合时,它以安全的方式处理可变状态。

关于scala - 并发概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932507/

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