美文网首页多线程等我爱编程
iOS开发之AFNetworking 3.0 如何实现在多个网络

iOS开发之AFNetworking 3.0 如何实现在多个网络

作者: 朱晓晓的技术博客 | 来源:发表于2018-04-12 15:39 被阅读260次

    用信号量就可以解决:

    dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
        dispatch_queue_t quene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        
        //任务1
        dispatch_async(quene, ^{
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
               [self loadDetailData];  //请求A
            dispatch_semaphore_signal(semaphore);
        });
        //任务2
        dispatch_async(quene, ^{
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
                [self loadHotCommentData]; //请求B
            dispatch_semaphore_signal(semaphore);
        });
        //任务3
        dispatch_async(quene, ^{
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
            [self loadHotCommentData]; //请求C
            dispatch_semaphore_signal(semaphore);
        });
        //任务4
        dispatch_async(quene, ^{
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
            [self loadHotCommentData]; //请求D
            dispatch_semaphore_signal(semaphore);
        });
    
    注意:Google一下 “ iOS convert async to sync ” 注意用信号量的方式,异步转同步后的方法只能在子线程调用,不然会阻塞主线程

    参考链接:http://www.cocoachina.com/bbs/read.php?tid-1689119-page-2.html

    相关文章

      网友评论

        本文标题:iOS开发之AFNetworking 3.0 如何实现在多个网络

        本文链接:https://www.haomeiwen.com/subject/ikxfkftx.html