gpt4 book ai didi

Scala future 和线程

转载 作者:行者123 更新时间:2023-12-04 15:43:24 24 4
gpt4 key购买 nike

阅读 scala.concurrent.Future 和 scala.concurrent.impl.Future 的 scala 源代码,似乎每个 future 的组合都通过 map为执行者分派(dispatch)一个新任务。我假设这通常会触发当前线程的上下文切换,和/或为作业分配线程。

考虑到函数流需要在它们之间传递 Futures 以在不阻塞(或不深入研究回调意大利面条的情况下)作用于 Futures 的结果,当代码以模块化方式编写良好时,这种“响应式(Reactive)”范式在实践中不是非常昂贵吗每个函数只做一些小的事情并传递给其他函数?

最佳答案

这取决于执行上下文。所以你可以选择策略。

您是执行者也可以在调用线程中执行此操作,将 map 调用保持在同一个线程上。您可以通过显式传递执行上下文或使用隐式传递您自己的策略。

我将首先通过记录使用了哪个线程来测试默认的 fork/join 池的功能。 Afaik 的较新版本有时会使用提交线程。但是,我不知道这是否用于/应用于 scala future 的回调。

关于Scala future 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28990234/

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