【问题标题】:dispatch_queue and core datadispatch_queue 和核心数据
【发布时间】:2014-03-07 16:30:05
【问题描述】:

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

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

【问题讨论】:

标签: multithreading core-data grand-central-dispatch


【解决方案1】:

不需要创建序列号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
    }];

【讨论】:

  • 要明确,@dadougster 是正确的,您不应该将 NSManagedObjectContext 固定到串行队列,因为串行队列不保证线程受限。
猜你喜欢
  • 2011-01-11
  • 2010-12-04
  • 2014-09-18
  • 2013-01-24
  • 2011-12-04
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多