gpt4 book ai didi

sqlite - Android Room可与协同程序同时读取

转载 作者:行者123 更新时间:2023-12-03 17:51:32 34 4
gpt4 key购买 nike

我正在使用带有协程的Room存储/检索数据。从另一篇文章中,我看到,从技术上讲,您可以同时从数据库中进行无限数量的检索。目前,我正在处理一个非常大的数据集,我想对其进行检索。这大约是10,000,000行。我将其拆分为较小的读段,每个读段分别为4(2,500,000),这些读段并行发生。这将我的检索时间减少了30-40%(这是我想要的(相对于单个数据库读取而言))。让我困扰的是,当我将此拆分值增加到4以上时,它实际上会变慢。我认为添加更多并行协程将继续减少时间。

我验证了所有并行工作的协程都是唯一的线程,因此它们不会发生这种冲突。

有谁知道为什么会这样吗?我在想,Room / SQL可能对并发连接数有限制,但是基于此链接中的(5),情况并非如此:

SQlite Frequently Asked Questions

任何帮助,将不胜感激!

最佳答案

您对协程概念有些误解。协程称为轻量级线程,实际上使用的线程数取决于所选的Dispatcher。例如,Default调度程序的最大线程数等于CPU内核数,但至少为两个。为每个协程创建一个单独的线程会很浪费,并且与协程的主要思想之一-应用程序线程消耗优化相矛盾。有关更多详细信息,请参见Coroutine context and dispatchers

关于sqlite - Android Room可与协同程序同时读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56653007/

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