`NSPersistentStoreCoordinator` predates GCD. It's explicitly designed to be thread-happy, provided you lock it (it's basically just a mutex inside). Contexts etc. automatically lock the store as they need to; it's only if you're accessing it directly you need to apply your own lock. (At least so the Core Data docs fairly strongly suggest)