美文网首页Objective-C和iOS知识点集锦
只要是主队列就不会开线程

只要是主队列就不会开线程

作者: test158888 | 来源:发表于2016-10-30 18:31 被阅读101次

同步函数+(并发队列or主队列)的两种情况

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"11  %@",[NSThread currentThread]);
        });
    });
     
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"22  %@",[NSThread currentThread]);
        });
    });
     
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"33  %@",[NSThread currentThread]);
        });
    });
     
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"44  %@",[NSThread currentThread]);
        });
    });
     
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"55  %@",[NSThread currentThread]);
        });
    });

一个接一个执行

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"11  %@",[NSThread currentThread]);
    });
});
 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"22  %@",[NSThread currentThread]);
    });
});
 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"33  %@",[NSThread currentThread]);
    });
});
 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"44  %@",[NSThread currentThread]);
    });
});
 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"55  %@",[NSThread currentThread]);
    });
});

异步执行

相关文章

  • 只要是主队列就不会开线程

    同步函数+(并发队列or主队列)的两种情况 一个接一个执行 异步执行

  • iOS线程安全问题

    多线程 线程与队列区别 程序分为主线程与子线程, 主线程主要用来更新队列,而主线程所有要处理的事务都放在主队列,主...

  • GCD

    GCD 队列与线程的关系 主队列和主线程 『ios』主线程 和 主队列的关系,绝对安全的UI操作,主线程中一定是主...

  • iOS GCD 常用功能

    获取主队列 异步执行 会开新线程 创建串行队列 开一个线程 顺序执行 1 和 2 创建并行队列 创建多个线程 ...

  • iOS多线程-并发队列

    GCD 并发队列 并发队列,异步执行 问题:1.会开几条线程?会开多条线程,线程数量是由GCD来决定2.会顺序执行...

  • 06 GCD 并发队列

    03 GCD-并发队列 并发队列,异步执行 问题:1.会开几条线程?会开多条线程,线程数量是由GCD来决定2.会顺...

  • iOS开发—GCD笔记

    多线程,主GCD 串行队列(Serial Dispatch Queue,等待现有处理结束) 并行队列�(Concu...

  • 谈谈dispatch_sync 和 dispatch_async

    看了网上很多关于多线程介绍这俩货的,夹杂着串行队列,并发队列,主队列,全局队列,开/不开新线程,看的我是头都晕了....

  • 队列(一)

    结论: 只要是异步添加任务,不管是并行队列还是串行队列,任务都是在新线程中执行;但在主队列里时不开启新线程; 只要...

  • iOS开发笔记-多线程的使用方法

    多线程方式一:GCD队列的3个种类: 自建队列: 分并行/串行 全局队列: 属于并行队列, 是系统默认创建的. 主...

网友评论

    本文标题:只要是主队列就不会开线程

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