串行队列+同步任务
/*
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.当并发队列只有跟异步任务组合时,才会有并发效果
*/