multithreading - dispatch_queue 和核心数据

标签 multithreading core-data grand-central-dispatch

我知道 NSManagedObjectContext 不是线程安全的,但我想在后台执行获取和更新。所以我对我是否可以做到这一点有疑问。

我有一个访问核心数据的单例,所以我想创建一个串行 dispatch_queue_t 可以串行执行所有请求。这可以吗,因为我不确定是否所有请求都会在同一个线程中执行,但不会有任何并发​​操作,因为它是串行的。

最佳答案

不需要创建串行 dispatch_queue_t 只需信任 NSManagedObjectContext 来处理它,只需使用 performBlock: & performBlockAndWait:

    [context performBlock:^{
        // do fetches or updates here and do not worry about threads,
        // just make sure your context has a proper concurrencyType
    }];

关于multithreading - dispatch_queue 和核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255504/

相关文章:

android - Activity 泄漏了最初添加到此处的窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@46368a28

ios - 如何快速使用 CoreData 信息对 UITableView 进行排序?

ios - CoreData : removal of 'didSave' notification immediately after save: call. 太快了?

ios - 是什么导致了这个核心数据输出的差异?

Objective-C 从嵌套函数返回 (GCD)

ios - dispatch_after 是否将操作放入队列中?

ios - 使用带有循环的 Alamofire 根据 Tableview 计数发送多个请求

java - RxJava 调度程序始终与 sleep 在同一线程中工作

c++ - 应该在游戏循环 C++ 中调用 std::async 吗?

java - Java中的线程隔离