如何并行执行线程并在没有数据库锁的情况下在sqlite数据库中插入相应的数据?

时间:2012-09-10 11:18:51

标签: android multithreading sqlite

我需要调用多个api,每个api都在单独的线程中执行,并将相应的数据从响应插入sqlite数据库而不会导致锁定。任何人都可以通过我可以参考的工作实例来帮助我。

1 个答案:

答案 0 :(得分:6)

  

我需要调用多个api,每个api都在单独的线程中执行,并将相应的数据从响应插入sqlite数据库,而不会导致锁定。

你不需要做任何特别的事情。多个线程可以使用相同的SQLiteDatabase对象,而无需在应用程序级别进行锁定。 Sqlite在封面下完成它自己的锁定。你永远不应该遇到死锁,但是一个线程必须等待另一个线程完成插入。

请参阅以下问题/答案:

Android下的Sqlite是单线程的。即使多个线程使用相同的数据库连接,我的理解是它们将被阻止并发运行。没有办法解决这个限制。如果打开到同一数据库的两个连接,则会损坏数据库,因为不会协调数据库更新。