1

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

据我了解,ManagedObject 和 ManagedObjectContextinstances 都不是线程安全的。PersistentStoreManager 呢,它是线程安全的吗?

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

4

1 回答 1

1

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

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

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

于 2012-10-15T23:53:38.947 回答