串行队列/并发队列&异步任务/同步任务代码演练

来源:互联网 发布:淘宝头像 编辑:程序博客网 时间:2024/05/08 07:38

串行队列+同步任务
/*
1.是否开线程? 不开
2.i是否有序? 是
3.mark在哪里执行? 最后
*/

- (void)demo01{ // 创建串行队列 : 队列标识符;队列属性 : 决定了队列是串行的还是并行的,DISPATCH_QUEUE_SERIAL NULL 都表示串行    dispatch_queue_t queue = dispatch_queue_create("kk", DISPATCH_QUEUE_SERIAL);    // 向串行队列中添加啊10个同步任务    for (NSInteger i = 0; i < 10; i++) {        // 把同步任务添加到串行队列        dispatch_sync(queue, ^{            NSLog(@"%zd----%@",i,[NSThread currentThread]);        });    }    NSLog(@"mark");}

这里写图片描述

串行队列+异步任务
/*
1.是否开线程? 开,开一个,一个够用
2.i是否有序? 是
3.mark在哪里执行? 不确定
*/

这里写图片描述

并发队列+同步任务
/*
1.是否开线程? 不开
2.i是否有序? 是
3.mark哪里打印? 最后
*/

- (void)demo01{    dispatch_queue_t queue = dispatch_queue_create("qq", DISPATCH_QUEUE_CONCURRENT);    for (NSInteger i = 0; i < 10; i++) {        dispatch_sync(queue, ^{            NSLog(@"%zd----%@",i,[NSThread currentThread]);        });    }    NSLog(@"mark");}

这里写图片描述

并发队列+异步任务
/*
1.是否开线程? 开
2.i是否有序? 否
3.mark哪里打印? 不确定
4.当并发队列只有跟异步任务组合时,才会有并发效果
*/

这里写图片描述

阅读全文
0 0