2

我是 Quasar 的新手,想知道是否有像下面这样的例子。或者即使有人可以指出我如何做到这一点的正确方向。

所以我需要做的是读取一个 json 文件。为每个索引创建一个新的 Fiber 并从 json 传递一些值。每个纤程都会根据 json 中的值创建一个执行函数。但根据值的不同,某些纤维可能需要更长的时间才能完成。将等待最多 5 秒完成。

我假设所有这些纤维都将并行运行。

这甚至可能吗?任何例子都会很棒。

4

1 回答 1

4

我是 Quasar 团队的一员。

Fibers 将同时运行实际的并行度取决于您在其上运行程序的 CPU 内核数以及 Fibers 执行器的并行度级别,默认情况下,它是一个 ForkJoinPool,其工作线程数等于 CPU 内核数。

纤维就像线程一样使用(但更轻量级):你生成它们,让它们完成它们的工作并加入它们。在您的情况下,您似乎不需要更多(尽管 Quasar 为纤维和线程提供了类似 Go 的通道、类似 Erlang 的演员和数据流)所以我建议您看看纤维docs,也有很多例子,但我特别建议你从Gradle 模板开始。

您可以将索引/值作为闭包变量传递给从匿名类创建的实例,或者您可以创建一个命名的子类Fiber并将它们作为构造函数参数接收。

记得运行代理。如果您需要构建一个包含代理的单一工件可执行 JAR,我建议您查看Capsule

还可以考虑加入Quasar-Pulsar 用户组

于 2016-04-24T07:51:57.003 回答