gpt4 book ai didi

scala - 如何在 Scala 中检索一组 Actor 中第一个完成的 Actor?

转载 作者:行者123 更新时间:2023-12-02 11:57:57 24 4
gpt4 key购买 nike

我有一定数量的长时间运行的 Actor,我希望编写一个同步函数来返回第一个完成的 Actor。我可以通过对 future 进行旋转等待来做到这一点(例如:

while (! fs.exists(f => f.isSet) ) {
Thread.sleep(100)
}
val completeds = fs.filter(f => f.isSet)
completeds.head()

),但这看起来非常“非 Actor ”

scala.actors.Futures 类有两个看起来非常接近的方法 awaitAll()awaitEither();如果有一个 awaitAny() 我会跳上去。我是否缺少一种简单的方法来执行此操作,或者是否有适用的通用模式?

最佳答案

等待完成的一种更“actorish”的方式是创建一个负责处理完成结果的actor(我们称之为ResultHandler)

工作人员不是回复,而是以“即发即忘”的方式将答案发送给 ResultHandler。后者将继续处理结果,而其他 worker 完成他们的工作。

关于scala - 如何在 Scala 中检索一组 Actor 中第一个完成的 Actor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988854/

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