3

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

4

1 回答 1

8

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

你不需要做任何特别的事情。多个线程可以使用同一个SQLiteDatabase对象,而无需您在应用程序级别进行锁定。Sqlite 在幕后有自己的锁定。您永远不应该遇到死锁,但一个线程将不得不等待另一个线程完成插入。

请参阅这些问题/答案:

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

于 2012-09-10T11:49:58.667 回答