iOS开发之获得当前线程

闲话少说直接上代码

dispatch_queue_t queueA = dispatch_queue_create("com.effectiveobjective.queueA", NULL);
dispatch_queue_t queueB = dispatch_queue_create("com.effectiveobjective.queueB", NUL);
dispatch_set_target_queue(queueB, queueA);

static int kQueueSpecific;
CFStringRef queueSpecificValue = CFSTR("queueA");
dispatch_queue_set_specific(queueA, //
                                                 &kQueueSpecific, //key
                                                 (void *)queueSpecificValue, //value
                                                 (dispatch_function_t)CFRelease);

dispatch_sync(queueB, ^{
   dispatch_block_t block = ^{
      NSLog(@"No deadLock!");
   };
   CFStringRef retrieveValue = dispatch_get_specific(&kQueueSpecific);
    if(retrievedValue){
       block;
    }else{
       dispatch_queue(queueA, block);
    }
});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,224评论 25 708
  • iOS开发中,多线程是一个重要的知识点,在进行下面内容之前,有必要先讲一下进程和线程的概念。进程:系统中正在运行的...
    绿豆粥与茶叶蛋阅读 684评论 2 4
  • 技术背景 现在混合编程越来越多,为了能给用户提供一个完整的体验,我们就需要解决H5页面与原生程序直接的交互问题,闲...
    Leafly阅读 1,472评论 0 5
  • 每天早晨,都从一大碗黄澄澄稀稠刚好的玉米粥开始,闻着那浓郁醇香味道,味蕾跳动着,哧溜溜一大口,太烫,转个方向,又哧...
    一曦清露阅读 1,150评论 2 3

友情链接更多精彩内容