Concurrency Raku提供了哪些并发机制,如何评估它们?

Concurrency Raku提供了哪些并发机制,如何评估它们?,concurrency,raku,Concurrency,Raku,我是一名学生,目前正在撰写关于Raku的论文,为此我决定评估Raku(Perl 6)在处理高并发性时是否是一种好语言 除了官方网站外,我还没有找到任何关于Raku并发性的文章。此外,我不知道如何评估Raku的并发性(例如,我应该使用什么程序,应该将哪种语言与Raku进行比较,等等) Raku提供了哪些并发机制?这些文件记录在哪里?如何评估它们的功能和性能?关于Raku并发性的论文:如果你想了解并发性是如何工作的,我知道没有学术论文。例如,您可以在某些降临节日历出版物中查找。大多数关于Raku的书

我是一名学生,目前正在撰写关于Raku的论文,为此我决定评估Raku(Perl 6)在处理高并发性时是否是一种好语言

除了官方网站外,我还没有找到任何关于Raku并发性的文章。此外,我不知道如何评估Raku的并发性(例如,我应该使用什么程序,应该将哪种语言与Raku进行比较,等等)


Raku提供了哪些并发机制?这些文件记录在哪里?如何评估它们的功能和性能?

关于Raku并发性的论文:如果你想了解并发性是如何工作的,我知道没有学术论文。例如,您可以在某些降临节日历出版物中查找。大多数关于Raku的书,比如我自己的Raku食谱(由Apress出版),都有一章是关于并发性的,所以你也可以看看。最后,将Raku的并发性用于进化计算,获得了良好的结果

如何评估Raku的并发性:*Raku使用,并将其用作第一类对象。从这个意义上讲,它类似于。另一方面,它能够通过自动线程数据流,就像Julia通过宏那样。因此,这可能是两个比较的目标


也许是一个更好的提问的地方。

raku内置的CSP是Tony(Anthony)Hoare构思的一个成熟的并发模型。你可能还想找比尔(威廉)罗斯科的工作,他继续了托尼的研究路线。请注意,这将是一般CSP研究。我怀疑在Raku上是否有任何可参考的具体操作。

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

  • 收集
    /
    获取
    机制,用于延迟生成值。这在各种语言中被视为生成器函数;然而,在Raku中,没有单堆栈帧限制,因此它们具有协同路由功能。(这在涉及异步编程的任何上下文中都不重要,但它仍然符合并发性的定义)
  • 传递异步操作的单个结果的
    Promise
    机制与JavaScript中的
    Promise
    s或.Net中的
    Task
    非常相似(语义更接近后者)
  • 供应
    是一个异步值流。它和有很多共同点,但是它选择了一个命名和API,适合整个Raku语言设计(例如,方法名匹配序列上的同步对偶)
  • Channel
    是一个并发队列,它具有传递完成和错误的机制,这意味着您可以轻松地在
    Supply
    Channel
    范例之间转换。关键区别在于,
    通道
    具有存储功能-您可以将值放入其中,然后立即执行其他操作-而如果您向
    供应
    发出值,则您需要支付处理成本(提供背压机制)。可以使用
    通道
    s构建各种体系结构,例如
Raku中最独特的概念(在其他语言中不直接存在)是
react
/
supply
/
where
构造。编写多个异步流的处理器通常具有挑战性(订阅管理、并发控制);该构造提供了一种结构化的编程方法。除此之外,这主要是一个语言集成在Raku变得更强的问题,而不是像库一样对待这些东西

正如其他人所指出的,正式文件的形式还不多。然而,这些幻灯片可能很有意思(免责声明:它们是我的;我为Raku并发设计做出了贡献,并发明了
react
/
提供
/
无论何时

  • -调查其实施方式

这个问题正在讨论中。