你的位置:首页 > 操作系统

[操作系统]异步任务+并行队列情况与异步任务+串行队列(主队列)情况

异步任务+并行队列

把异步任务放到并行队列进行执行,异步任务会在不同的线程中执行。

  /*异步执行+并行队列*/  - (IBAction)clickBasic1:(UIButton *)sender {    //全局并行队列    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);        //异步执行    dispatch_async(queue, ^{      for (int i = 0; i<2; i++) {        NSLog(@"task1:%d",i);      }      NSLog(@"task1----%@",[NSThread currentThread]);    });        dispatch_async(queue, ^{      for (int i = 0; i<2; i++) {        NSLog(@"task2:%d",i);      }      NSLog(@"task2----%@",[NSThread currentThread]);    });        dispatch_async(queue, ^{      for (int i = 0; i<2; i++) {        NSLog(@"task3:%d",i);      }      NSLog(@"task3----%@",[NSThread currentThread]);    });      }

运行结果如下。异步任务+并行队列组合情况下,每个任务会在不同的线程中同时执行。


运行结果如下。可以看到,所有任务都在一个线程中执行,并且完成一个后,再执行下一个。