关于android Sqlite安全性的多进程案例

时间:2014-09-10 04:32:30

标签: android sqlite

在我的应用程序中,存在多个进程,并且在每个进程中,我需要访问相同的SQLite数据库(当然,这意味着超过2个theads),所以我不仅担心线程安全性SQLite,也是流程安全。

此案例的一个解决方案是using content-provider。但是来自android sdk,it warns that its methods may be called from multiple threads and therefore must be thread-safe。如果内容提供者本身不一定意味着线程安全,我怎么能认为它是过程安全的?

article还明确说明默认情况下SQLiteDatabase本身是同步的,从而保证没有两个线程会同时触及它。如果在多进程情况下怎么办?两个进程可以同时修改同一个表吗?它会崩溃吗?谷歌搜索后我没有得到任何答案....

3 个答案:

答案 0 :(得分:2)

多个进程的行为就像多个线程一样,即它们的事务不会受到彼此的干扰。

答案 1 :(得分:1)

你可以在这里找到答案:https://www.sqlite.org/faq.html(第5点)。简言之:

  

多个进程可以同时打开同一个数据库。多   进程可以同时执行SELECT。但只有一个过程可以   但是,在任何时候都要对数据库进行更改。

答案 2 :(得分:0)

如果您使用的是Android Room,请参见https://issuetracker.google.com/issues/62334005