CoreDataスタックが永続性メカニズムとしてSqliteを使用するように構成されているとしましょう。
私が理解しているように、ManagedObjectもManagedObjectContextinstancesもスレッドセーフではありません。PersistentStoreManagerはどうですか、スレッドセーフですか?
つまり、同じ永続コアデータストアに対して複数のスレッドの読み取りと書き込みを行う場合、ある種の同期ソリューションを実装する必要がありますか?
CoreDataスタックが永続性メカニズムとしてSqliteを使用するように構成されているとしましょう。
私が理解しているように、ManagedObjectもManagedObjectContextinstancesもスレッドセーフではありません。PersistentStoreManagerはどうですか、スレッドセーフですか?
つまり、同じ永続コアデータストアに対して複数のスレッドの読み取りと書き込みを行う場合、ある種の同期ソリューションを実装する必要がありますか?
ほとんどのデータベース システムと同様に、SQLite は独自の同時実行メカニズムを実装して、スレッド/ユーザーの競合を解決します。いいえ、自分でロールする必要はありません。
とはいえ、多くの書き込み競合が発生する場合、SQLite は理想的ではありません。SQLite は書き込み中にデータベース全体をロックするため、同時に行われる書き込みの量を最小限に抑えるようにしてください。
SQLite の同時実行の詳細については、
http ://www.sqlite.org/lockingv3.html を参照してください。