【问题标题】:When to multi thread sqlite database queries何时多线程 sqlite 数据库查询
【发布时间】:2012-07-18 21:27:28
【问题描述】:

我已经编写了一个带有一个数据库助手的内容提供程序,并开始构建一个“管理器”类来执行特定的插入、删除、更新、查询等。

管理器在必要时为我的游标适配器返回游标加载器,我认为这是多线程的。

我的问题是,当我在数据库上执行不涉及加载程序的操作时,我应该创建一个新线程吗?

一个例子可能是,我从操作栏执行保存 - 我应该手动多线程插入吗?这也适用于更新查询删除等?

【问题讨论】:

  • 如果任何操作使用较少的时间,则不需要使用多线程
  • 根据我对内容提供者的理解,如果一个操作有多个请求,它们会被取消,所有操作都将自动执行

标签: android database multithreading sqlite


【解决方案1】:

多线程数据库操作时必须非常谨慎。

  1. 是否需要多线程?除非您的数据库非常大,并且您正在执行的操作对数据库非常繁重,否则我会说没有必要。

  2. 安全吗?如果线程在同一个表上执行操作,那么在运行多个线程时必须非常小心。您必须确保您控制哪个线程首先运行以及该线程对数据库的影响。一般来说,这是不明智的。

从您的具体问题的声音来看,我会说不需要多个线程。如果这会影响用户并且您希望他们等待尽可能少的时间,也许您可​​以查看后台线程!

【讨论】:

  • 这还不是问题。真的只是一个最佳实践问题。大多数密集查询是在活动创建时进行的。我想知道线程所有数据库活动是否已完成? @Rollno1 建议内容提供商无论如何都会处理我的问题 - 我认为他可能是对的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多