美文网首页
异步执行+并发队列

异步执行+并发队列

作者: Jean_Lina | 来源:发表于2020-07-06 20:49 被阅读0次
/**
 * 异步执行 + 并发队列
 * 特点:可以开启多个线程,任务交替(同时)执行。
 */
- (void)asyncConcurrent {
    //打印当前线程
    NSLog(@"currentThread---%@",[NSThread currentThread]);
    NSLog(@"asyncConcurrent---begin");
    dispatch_queue_t queue = dispatch_queue_create("net.bujige.testQueue", DISPATCH_QUEUE_CONCURRENT);
    dispatch_async(queue, ^{
        //追加任务1
        for (int i = 0; i < 2; ++i) {
            //模拟耗时操作
            [NSThread sleepForTimeInterval:2];
            //打印当前线程
            NSLog(@"1---%@",[NSThread currentThread]);
        }
    });
    dispatch_async(queue, ^{
        //追加任务2
        for (int i = 0; i < 2; ++i) {
            //模拟耗时操作
            [NSThread sleepForTimeInterval:2];
            //打印当前线程
            NSLog(@"2---%@",[NSThread currentThread]);
        }
    });
    dispatch_async(queue, ^{
        //追加任务3
        for (int i = 0; i < 2; ++i) {
            //模拟耗时操作
            [NSThread sleepForTimeInterval:2];
            //打印当前线程
            NSLog(@"3---%@",[NSThread currentThread]);
        }
    });
    NSLog(@"asyncConcurrent---end");
}
运行结果:
2020-07-06 20:42:18.289380+0800 GCD[15964:3050162] currentThread---<NSThread: 0x600001e82d00>{number = 1, name = main}
2020-07-06 20:42:18.289488+0800 GCD[15964:3050162] asyncConcurrent---begin
2020-07-06 20:42:18.289660+0800 GCD[15964:3050162] asyncConcurrent---end
2020-07-06 20:42:20.291936+0800 GCD[15964:3050315] 2---<NSThread: 0x600001ee9f40>{number = 7, name = (null)}
2020-07-06 20:42:20.291931+0800 GCD[15964:3050311] 1---<NSThread: 0x600001eda5c0>{number = 5, name = (null)}
2020-07-06 20:42:20.291967+0800 GCD[15964:3050310] 3---<NSThread: 0x600001e8bc40>{number = 6, name = (null)}
2020-07-06 20:42:22.292730+0800 GCD[15964:3050310] 3---<NSThread: 0x600001e8bc40>{number = 6, name = (null)}
2020-07-06 20:42:22.292730+0800 GCD[15964:3050315] 2---<NSThread: 0x600001ee9f40>{number = 7, name = (null)}
2020-07-06 20:42:22.292731+0800 GCD[15964:3050311] 1---<NSThread: 0x600001eda5c0>{number = 5, name = (null)}

相关文章

  • iOS GCD笔记

    串行队列 并发队列 主队列 全局并发队列 同步执行 异步执行 同步+并发队列 = 没有开启新线程,串行执行任务 s...

  • GCD小总结

    单例模式 串行队列同步/异步执行任务 并发队列同步/异步执行任务 队列组 延时执行 barrier

  • iOS开发-队列和同步异步执行的结果分析

    多线程中的队列有:串行队列,并发队列,全局队列(并发),主队列(串行)。 执行的方法有:同步执行和异步执行。 提到...

  • iOS - 多线程(二) GCD讲解

    目录: 1.GCD简介2.串行队列 + 同步执行3.串行队列 + 异步执行4.并发队列 + 同步执行5.并发队列 ...

  • iOS GCD基本使用(二)

    //异步函数+并发队列会开启多条线程,异步执行- (void)asyncConcurrent{//1.创建队列//...

  • iOS学习笔记_GCD的基本使用

    1、 异步函数+并发队列:开启多条线程,并发执行任务2、 异步函数+串行队列:开启一条线程,串行执行任务3、...

  • GCD

    MARK:并发队列,异步执行 -(void)gcdDemo3{//1.队列-并发 DISPATCH_QUEUE_C...

  • GCD各种情况整理

    01 异步函数+并发队列:开启多条线程,并发执行任务02 异步函数+串行队列:开启一条线程,串行执行任务03 同步...

  • iOS多线程--GCD

    队列:串行队列,并发队列,全局队列,主队列。 2.执行的方法有:同步执行和异步执行。 多线程,四种,pthread...

  • 队列dispatch_queue的使用

    队列分为:串行队列、并发队列和主队列,主队列也叫特殊串行队列,是GCD自带的。 任务的执行分为:同步执行和异步执行...

网友评论

      本文标题:异步执行+并发队列

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