如果我有多个线程访问SQLite数据库,我应该实现同步解决方案吗?

时间:2012-10-15 23:33:01

标签: sqlite core-data concurrency

假设CoreData堆栈配置为使用Sqlite作为持久性机制。

据我所知,ManagedObject没有ManagedObjectContextinstances是线程安全的。那么PersistentStoreManager呢,它是线程安全的吗?

换句话说,如果我有多个线程读写同一个持久核心数据存储,我应该实现某种同步解决方案吗?

1 个答案:

答案 0 :(得分:1)

与大多数数据库系统一样,SQLite实现了自己的并发机制来解决线程/用户冲突。所以不,你不需要自己动手。

也就是说,如果你要进行大量的写入争用,SQLite并不理想。 SQLite在写入期间锁定整个数据库,因此您应该尝试并最小化发生的并发写入量。

有关SQLite并发的更多信息可以在这里找到:
http://www.sqlite.org/lockingv3.html