美文网首页
使用dispatch_queue_concurrent遇到的坑

使用dispatch_queue_concurrent遇到的坑

作者: 小小旭 | 来源:发表于2018-12-03 14:30 被阅读0次

    防不胜防,写了几年的iOS,还是没能避免掉进去

    // 利用并发队列,处理数据
    __block NSMutableArray<IMMessageStatus *> *resultArray = [NSMutableArray array];
            dispatch_queue_t concurrent = dispatch_queue_create("concurrent", DISPATCH_QUEUE_CONCURRENT);
            dispatch_apply(list.count, concurrent, ^(size_t index) {
                // 处理list
            });
            dispatch_apply(list.count, concurrent, ^(size_t index) {
                // 处理list
            });
    

    两个并发同时处理一个数据源时,产生死锁。
    解决办法:
    1)合并到一个dispatch_apply中处理,
    2)使用dispatch_queue_serial

    相关文章

      网友评论

          本文标题:使用dispatch_queue_concurrent遇到的坑

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