gpt4 book ai didi

concurrency - Raku 提供了哪些并发机制以及如何对其进行评估?

转载 作者:行者123 更新时间:2023-12-03 22:44:46 26 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

10 个月前关闭。




Improve this question




我是一名学生,目前正在撰写有关 Raku 的论文,为此我决定评估 Raku (Perl 6) 在处理高并发时是否是一种好语言。
除了官网,我还没有找到任何关于 Raku 并发的论文。另外,我不知道如何评估 Raku 的并发性(例如,我应该使用什么程序,应该将哪种语言与 Raku 进行比较等)。
Raku 提供了哪些并发机制?这些记录在哪里?如何评估它们的功能和性能?

最佳答案

Raku 提供了许多不同的并发机制(此外还提供了许多并行编程方法,但我假设问题实际上只是关于并发)。 Raku 中的大部分内容都可以在其他语言中找到;例如:

  • gather/take惰性生成值的机制。这在各种语言中被视为生成器函数;然而,在 Raku 中,没有单个堆栈帧限制,因此它们是强大的协程。 (这不是涉及异步编程的任何上下文,但它仍然符合并发的定义)。
  • Promise传送异步操作的单个结果的机制很像 Promise JavaScript 中的 s 或 Task在 .Net 中(语义更接近后者)。
  • A Supply是一个异步值流。它与reactive extensions (Rx) 有很多共同点。 ,但是选择了适合整个 Raku 语言设计的命名和 API(例如,方法名称匹配它们在序列上的同步对偶)。
  • A Channel是一个并发队列,它有一个机制来传达完成和错误,这意味着你可以很容易地在Supply之间进行转换。和 Channel范式。关键区别在于 Channel有存储 - 您可以将值放入其中,然后立即继续执行其他操作 - 而如果您将值发送到 Supply您支付处理成本(提供背压机制)。可以使用 Channel 构建各种架构s,例如 staged event-driven architecture .

  • Raku 中最有特色的概念是 react,它在其他语言中并不直接存在。/ supply/ whenever构造。编写多个异步流的处理器通常具有挑战性(订阅管理、并发控制);该构造提供了一种结构化的编程方法。除此之外,主要是语言集成在 Raku 中更强一些的问题,而不是将这些东西仅仅视为库。
    正如其他人所指出的,正式论文还没有太多。然而,这些幻灯片可能很有趣(免责声明:它们是我的;我为 Raku 并发设计做出了贡献,并发明了 react/ supply/ whenever )。
  • 8 ways to do concurrency and parallelism in Perl 6
  • Understanding react, supply, and whenever
  • Inside Perl 6 concurrency - 研究它是如何实现的
  • 关于concurrency - Raku 提供了哪些并发机制以及如何对其进行评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65473206/

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