美文网首页
iOS笔记-多线程

iOS笔记-多线程

作者: lmao94 | 来源:发表于2022-05-07 08:58 被阅读0次
    同步函数&串行队列
    • 不会开启线程,在当前线程执行任务
    • 任务串行执行,任务一个接着一个
    • 会产生堵塞(死锁,崩溃)

    主队列(串行队列)加入同步任务堵塞的原因:

    NSLog(@"aaa");
    dispatch_sync(dispatch_get_main_queue(), ^{
        NSLog(@"bbb");
    });
    NSLog(@"ccc");
    
    • 任务A内容为执行B任务
    • 串行队列,所以B任务是在A任务之后加入队列,需要等待任务A执行完毕
    • 同步任务,A任务的内容B执行完成,A任务才算完成
    • 于是,因为串行,B等待A,因为同步,A等待B,互相等待产生死锁
    同步函数&并发队列
    • 不会开启线程,在当前线程执行任务
    • 任务一个接着一个
    异步函数&串行队列
    • 开启新线程
    • 任务一个接着一个
    异步函数&并发队列
    • 开启线程,在当前线程执行任务
    • 任务异步执行,没有顺序,CPU调度有关
    • 同步函数(sync)不开启子线程
    • 异步函数(async)开启子线程
    • 串行队列(serial_queue)顺序执行
    • 并行队列(concurrent_queue)任务顺序不确定

    相关文章

      网友评论

          本文标题:iOS笔记-多线程

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