Kotlin:创建自定义 CoroutineContext

2024-01-11

我在 API 后端使用 Kotlin。我不想在中运行数据库查询common pool。基本上,我想创建一个CoroutineContext有许多与数据库匹配的线程maximumPoolSize.

完成此任务的最佳方法是什么(一般情况下以及针对我的特定用例)?我知道 Kotlin 提供contexts开箱即用,但是创建我自己的最佳方法是什么?

奖金问题:如果我的 jdbc 连接池大小为 3,那么使用线程池大小为 3 的协程上下文是否有意义?这能保证最好的并发性吗?


功能newFixedThreadPoolContext现在被认为在当前版本的 Kotlin 协程 (1.3.0) 中已过时,因为它现在带有注释@ObsoleteCoroutinesApi如果您尝试使用它,它会给您一个警告。文档还指出,它将在未来被替换。

现在创建 CoroutineContext 的推荐方法是通过

Executors.newFixedThreadPool(3).asCoroutineDispatcher()

因此,带有导入的完整示例(还创建了 CoroutineScope)如下所示

import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.asCoroutineDispatcher
import java.util.concurrent.Executors
import kotlin.coroutines.CoroutineContext

fun coroutineScope(threads: Int): CoroutineScope {
    val context: CoroutineContext = Executors.newFixedThreadPool(threads).asCoroutineDispatcher()
    return CoroutineScope(context)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin:创建自定义 CoroutineContext 的相关文章

随机推荐

  • 如果我为实体分配一个 ID,那么如何让 NHibernate 保存它,否则生成一个 ID?

    根据 REST 哲学 PUTrequest 应该更新 URL 上的资源 如果存在 如果不存在则创建它 换句话说 如果我使用以下 URL PUT http server item 5 If an ItemID 为 5 的存在 它将被更新 如果
  • 如何在background.js 和popup.js 之间进行通信?

    我有一个带有后台脚本的扩展 background scripts scripts background js 和内容脚本 content scripts matches js scripts content script js 弹出窗口 p
  • 存储谷歌翻译结果

    我的客户正在使用 Google Translate API 将文本从英语翻译成多种语言 如果客户以 Excel 表格的形式向我提供原始文本和翻译文本 我是否可以将翻译文本存储在我的数据库中 我尝试用谷歌搜索这个 发现一个页面说这是不允许的
  • 如何将表格放在div中

    我有一个div包含一个table有两行 如果单词之间有空格 一切都很好 但是如果我放了一个很长的单词 比如400 个字符 在里面 td 表将退出div 我怎样才能打破这个词并将其限制在 div Here https jsfiddle net
  • App Store 提交后出现无效的二进制错误

    I m constantly getting the following Error 将我的应用程序提交到 App Store 后 我已经尝试了 Apple 邮件中推荐的所有内容以及我在 Stackoverflow 上找到的帖子的答案 尽管
  • ISO 8601 定义感恩节的重复间隔?

    我试图定义一个每年重复的时间间隔 从 11 月的第四个星期四的 13 30z 开始 到同一天的 15 00z 结束 这可以使用 ISO 8601 来完成吗 这种重复无法用当前的 ISO 8601 来表达 ISO 8601 的下一版本很可能包
  • 在 jQuery click() 期间处理程序是否总是同步调用?

    通过一些简短的测试看来click 将触发任何适用的处理程序同步地 也就是说 处理程序都在之前调用click 返回 这对于我正在开发的东西来说是理想的 然而 jQuery 文档似乎并没有保证 没有提到一种或另一种方式 处理程序是同步调用的 同
  • 让文本输入框透明?应该很简单吧?

    我试图使我的表单输入透明并将其覆盖在我的 div 之上 基本上我希望文本字段对其后面的任何内容都是透明的 有什么建议么
  • 哪里可以下载 eclipse 4.4 的 google 插件?

    谷歌的一些服务在这里被屏蔽 我无法从更新站点安装谷歌的插件 那么在哪里下载eclipse 4 4的插件存档 目前 谷歌的官方网站只提供4 3的存档 干得好 http dl google com eclipse plugin core 4 4
  • iOS 如何处理 URL 方案重复?

    如果另外 2 个应用程序注册相同的 url 方案 iOS 如何处理这个问题 The iOS 文档 http developer apple com library ios documentation iPhone Conceptual iP
  • 调试测试时使用 DatabaseManager 连接到内存 Hsql(高超音速)数据库

    我想在 IDE Intellij IDEA 11 1 2 中调试测试时使用 hsql DatabaseManager 或 swing 版本 这并不重要 连接到内存中的 HSQL 数据库实例 我已经按照建议尝试过这个答案 https stac
  • 在 C# 中显示带有 alpha 通道的 PNG

    有没有办法在 C 应用程序中正确显示带有 alpha 通道的图像 比如说 PNG 感谢您的任何建议 UPDATE 好吧 我的问题有点不准确 我想获得 Alpha 通道的真正透明度 不填充父级的背景颜色 在下图中我们可以看到支持透明度 但按钮
  • Objective C 类别的实例变量

    我遇到的情况是 我似乎需要将实例变量添加到类别中 但我从 Apple 的文档中知道我不能这样做 所以我想知道最好的替代方案或解决方法是什么 我想要做的是添加一个类别 为 UIViewControllers 添加功能 我会发现它在我所有不同的
  • 在大型分箱数据集上使用“ggplot”时出现内存泄漏

    我正在制作各种ggplot在非常大的数据集上 比示例大得多 我在 x 轴和 y 轴上创建了一个分箱函数 以便能够绘制如此大的数据集 在下面的示例中 memory size 是在开始时记录的 然后将大数据集模拟为dt dt s x2是针对x1
  • SQL Server 的自定义处理器 + DBCPConnectionPool:未加载驱动程序 jar

    I have created a controller service to connect to a test db 我有一个自定义处理器 可以从 SQL Server 读取数据 模拟测试 构建和部署到 NiFi 都成功 处理器遇到错误
  • PHP 5.5.X 及更高版本中是否需要再使用 & 符号?

    我到处都收到混合信号 我是否使用 符号通过引用传递变量 以下链接似乎告诉我它已被弃用并且不再需要 http gtk php net manual en html tutorials tutorials changes references
  • 我可以将 LayoutPrams 与 ViewGroup.addView 一起重复使用吗?

    Does ViewGroup addView clones LayoutParams数据放到里面还是链接到呢 我可以重用同一个实例吗LayoutParams多次调用addView 有不同的看法吗 apidoc 中没有任何相关内容 WOW 答
  • 压缩后的位图质量=比原始文件大小大 100 倍

    我正在尝试将图像发送到服务器 在发送之前 我会减小其大小和质量 然后解决任何旋转问题 我的问题是 旋转图像后 当我保存它时 文件比以前大 旋转前大小为 10092 旋转后大小为 54226 Scale image to reduce it
  • 表值函数和实体框架

    我正在尝试使用实体框架执行 TVF 但由于某种原因它不起作用 也许那里的任何人都可以帮助我解决这个问题 以下是代码示例 这就是函数 CREATE FUNCTION dbo udf profileSearch keywords NVARCHA
  • Kotlin:创建自定义 CoroutineContext

    我在 API 后端使用 Kotlin 我不想在中运行数据库查询common pool 基本上 我想创建一个CoroutineContext有许多与数据库匹配的线程maximumPoolSize 完成此任务的最佳方法是什么 一般情况下以及针对