【问题标题】:Quasar Parallel Universe examples类星体平行宇宙示例
【发布时间】:2016-04-22 13:40:52
【问题描述】:

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

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

我假设所有这些纤程都会并行运行。

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

【问题讨论】:

    标签: fiber quasar


    【解决方案1】:

    我是 Quasar 团队的一员。

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

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

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

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

    也可以考虑加入Quasar-Pulsar user group。

    【讨论】:

    • 警告:光纤 Fiber@10000007:fiber-10000007[任务:ParkableForkJoinTask@169b456(Fiber@10000007),目标:null,调度程序:co.paralleluniverse.fibers.FiberForkJoinScheduler@376cd890] 占用 CPU或阻塞线程。这是我尝试在线程中调用我的类时遇到的错误。
    • 这不是错误而是警告,请查看docs 了解更多信息(“失控光纤”小节)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多