代码之家  ›  专栏  ›  技术社区  ›  Kevin Galligan

Android sqlite无例外并发

  •  11
  • Kevin Galligan  · 技术社区  · 15 年前

    android上的Sqlite允许您从多个进程访问数据库进行读取,但是如果您当前正在从一个进程进行写入,那么从其他进程进行的读取和写入将引发异常,因为第一次写入对db有一个锁。

    我所说的“进程”是指同一个应用程序中的其他线程。

    有没有一种标准的方法让其他线程简单地等待数据库再次可用(可能有指定的超时),而不是抛出异常?

    期待着“你为什么这样做?”答案,这就是我们的方式,就是这样。我们也不会使用内容提供商。只是想要一种同步数据库访问的方法。

    假设没有标准的方法来做这件事,我们可能会在db调用周围编写一个包装器来做一些线程同步。

    2 回复  |  直到 15 年前
        1
  •  17
  •   Christopher Orr    15 年前

    只要你用的是一样的 SQLiteDatabase

    因此,如果通过单例访问对象,应该没有问题。不过,如果要实现超时,可能需要添加一些进一步的逻辑,例如wait/notify或类似的东西。

        2
  •  2
  •   Thomas Mueller    15 年前
    推荐文章