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

Rit*_*bey 2 sqlite multithreading android

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

Gra*_*ray 6

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

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

看到这些问题/答案:

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