使用并行计算统计文本中字母的频率。
并行是指把那些同样可以顺序完成的事情并行地做。一个常见的例子就是统计字母的频率。利用并行计算来算出文本数组中每个字母的总频率。
根据这份术语说明,你应该写出一个并行且确定性的程序,并(务必!)把并发的部分交给 Scala 处理。 否则,你的代码很快就会被各种讨厌的并发 bug 搞得一团糟,还容易出错。 程序尤其可能变得不确定,而在实践中这意味着:非常(事实上是极其)难以调试、测试和推理。
话虽如此,先写一个串行的解答可能是个好主意(并用测试套件来验证它)。 只有在那之后,你才应该尝试把它并行化,同时尽量让代码中串行和并行的部分彼此独立。
第一轮迭代可以使用 Scala 的并行集合。 你可能会发现这几乎太简单了(尤其是如果你已经听从了我们的建议,手上有了一个串行的解答)。
第二轮迭代,我们建议你试试用scala.concurrent.Future来写。
你可以参考这篇教程和它的续篇寻求帮助。
请确保你
许多库都在使用scala.concurrent.Future,它也是 Scala 并行与异步编程的“医嘱”。
因此,它是掌握这门语言的关键,也应该成为你 Scala 武器库的一部分。