objective-c - 识别GCD线程

标签 objective-c core-data grand-central-dispatch

我编写了一个核心数据抽象类,它保存持久存储、对象模型和对象上下文。为了使多线程更容易,我编写了对象上下文的访问器,以便它通过使用 [NSThread currentThread] 来识别线程,返回仅可用于当前线程的实例。

只要我不使用 GCD,它就可以完美工作,我想用 GCD 来替代旧的 NSThread。所以我的问题是,如何识别 GCD 线程?这个问题适用于 iOS 和 Mac OS X,但我猜这两个平台都是一样的。

最佳答案

您可以检查dispatch_get_current_queue()是否返回任何内容。我喜欢 Jeremy 的想法,即使用队列的上下文存储转换为 CD-context-per-queue 模型,而不是 CD-context-per-thread 模型。

关于objective-c - 识别GCD线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181828/

相关文章:

ios - 在 ios 通用设备上构建失败,但在模拟器上构建正常

ios - 如何使用 Objective-C 填写 HTML 表单

ios - NSPredicate 检查 swift 中对象类的种类

ios - 更新时跟踪 NSManagedObject 属性并立即更新 View

swift3 - 调度组 : check how many "entered"

objective-c - cmake - 设置 - xcode 属性 - 隐式链接 objective-c 运行时支持

Iphone - 用歌词写一个媒体播放器

ios - 在 iOS 应用程序更新中删除核心数据模型

ios - iOS6 上的 GCDAsyncUdpSocket 出现 "Connection reset by peer"错误

thread-safety - GCD 是否保证在同一个队列中工作的所有 block 总是在同一个线程中工作?(关于 ABAddressBookRef)