Android SQLite
参考: https://www.cnblogs.com/amdb/p/4045051.html https://sq.163yun.com/blog/article/182262732277997568 https://zhuanlan.zhihu.com/p/84055526 五种加锁状态 UNLOCKED:无锁状态。 SHARED:共享状态。同一时刻可加多个共享锁,即多个读操作可同时进行。 RESERVED:保留状态。说明将来要进行写操作,但目前还在进行读操作。同一时刻只能有一个保留锁,但其它事务可获取共享锁。 PENDING:未决状态。表示想要尽快写数据库,此时其它事务不能获取共享锁,等其它所有的共享锁都释放后便可获取独占锁。 EXCLUSIVE:独占状态。写数据库必须获取独占锁。不能与其它锁共存。 事务日志模式 回滚模式和WAL(Write Ahead Logging)模式。 1)回滚模式 写操作直接修改数据库文件,但写之前会先写日志文件(“-journal”的缀),写成功后删除日志,失败则通过日志回滚。 Android下,整个写事务周期内,都不能读数据库。(其它平台不清楚) 2)WAL模式 写操作会先将内容写入wal文件,然后再同步到数据库,使得读写数据库可以同时进行。 但从wal同步数据到数据库文件时不能读,其它事务读数据时也会阻塞同步操作。 同一连接下