轨道
/
Scala
Scala
/
练习
/
并行字母频率
并行字母频率

并行字母频率

中等

说明

使用并行计算统计文本中字母的频率。

并行是指把那些同样可以顺序完成的事情并行地做。一个常见的例子就是统计字母的频率。利用并行计算来算出文本数组中每个字母的总频率。

本赛道专属说明

根据这份术语说明,你应该写出一个并行且确定性的程序,并(务必!)把并发的部分交给 Scala 处理。 否则,你的代码很快就会被各种讨厌的并发 bug 搞得一团糟,还容易出错。 程序尤其可能变得不确定,而在实践中这意味着:非常(事实上是极其)难以调试、测试和推理。

话虽如此,先写一个串行的解答可能是个好主意(并用测试套件来验证它)。 只有在那之后,你才应该尝试把它并行化,同时尽量让代码中串行和并行的部分彼此独立。

第一轮迭代可以使用 Scala 的并行集合。 你可能会发现这几乎太简单了(尤其是如果你已经听从了我们的建议,手上有了一个串行的解答)。

第二轮迭代,我们建议你试试用scala.concurrent.Future来写。 你可以参考这篇教程和它的续篇寻求帮助。 请确保你

  • 只用一个阻塞调用来等待结果
  • 把它放在程序的最后,并且
  • 为它设置超时。

许多库都在使用scala.concurrent.Future,它也是 Scala 并行与异步编程的“医嘱”。 因此,它是掌握这门语言的关键,也应该成为你 Scala 武器库的一部分。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Scala Exercism

准备好开始 并行字母频率 了吗?

注册 Exercism,借助 95 个练习 和真人导师指导,学习并掌握 Scala,全部免费。

深入探索 并行字母频率!

我们探讨并发与并行之间的区别,并看看 JavaScript、Go、Elixir 和 Rust 等语言采用的不同做法。