我需要调用多个api,每个api都在单独的线程中执行,并将相应的数据从响应插入sqlite数据库而不会导致锁定。任何人都可以通过我可以参考的工作实例来帮助我。
答案 0 :(得分:6)
我需要调用多个api,每个api都在单独的线程中执行,并将相应的数据从响应插入sqlite数据库,而不会导致锁定。
你不需要做任何特别的事情。多个线程可以使用相同的SQLiteDatabase
对象,而无需在应用程序级别进行锁定。 Sqlite在封面下完成它自己的锁定。你永远不应该遇到死锁,但是一个线程必须等待另一个线程完成插入。
请参阅以下问题/答案:
Android下的Sqlite是单线程的。即使多个线程使用相同的数据库连接,我的理解是它们将被阻止并发运行。没有办法解决这个限制。如果打开到同一数据库的两个连接,则会损坏数据库,因为不会协调数据库更新。