pme*_*pme 6 concurrency functional-programming scala for-comprehension zio
我有以下 ZIO 程序,其中包含两个永久运行的进程:
for {
..
numberProvider <- numberProvider(queue).fork // runs forever
numberService <- numberService(queue) // runs forever
..
} yield ()
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但我想知道这是否是好的做法。
有2个问题:
可以吗,在主程序上运行 2. 进程。或者它也应该是Fiber?
我join最终是否必须使用 Fibers,即使它们永远运行,因此永远不会到达join?
for {
..
numberProvider <- numberProvider(queue).fork // runs forever
numberService <- numberService(queue) // runs forever
..
_ <- numberProvider.join // join in any case
} yield ()
Run Code Online (Sandbox Code Playgroud).join如果它们永远运行,您就不必使用光纤。
请注意,由于1.0.0-RC17, #zio.daemon正是出于这个原因添加了组合器,请参阅此处的发行说明:https : //github.com/zio/zio/releases/tag/v1.0.0-RC17从现在开始,.fork应避免使用永远运行的纤维。
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |