博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
刀哥多线程之主队列gcd-06-main_queue
阅读量:5061 次
发布时间:2019-06-12

本文共 963 字,大约阅读时间需要 3 分钟。

主队列

特点

  • 专门用来在主线程上调度任务的队列
  • 不会开启线程
  • 先进先出的方式,在主线程空闲时才会调度队列中的任务在主线程执行
  • 如果当前主线程正在有任务执行,那么无论主队列中当前被添加了什么任务,都不会被调度

队列获取

  • 主队列是负责在主线程调度任务的
  • 会随着程序启动一起创建
  • 主队列只需要获取不用创建
dispatch_queue_t queue = dispatch_get_main_queue();

主队列演练

  • 主队列,异步执行
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    [self gcdDemo1];    [NSThread sleepForTimeInterval:1];    NSLog(@"over");}- (void)gcdDemo1 {    dispatch_queue_t queue = dispatch_get_main_queue();    for (int i = 0; i < 10; ++i) {        dispatch_async(queue, ^{            NSLog(@"%@ - %d", [NSThread currentThread], i);        });        NSLog(@"---> %d", i);    }    NSLog(@"come here");}

主线程空闲时才会调度队列中的任务在主线程执行

  • 主队列,同步执行
// MARK: 主队列,同步任务- (void)gcdDemo6 {    // 1. 队列    dispatch_queue_t q = dispatch_get_main_queue();    NSLog(@"!!!");    // 2. 同步    dispatch_sync(q, ^{        NSLog(@"%@", [NSThread currentThread]);    });    NSLog(@"come here");}

主队列主线程相互等待会造成死锁

转载于:https://www.cnblogs.com/jiahao89/p/5118286.html

你可能感兴趣的文章
AWVS使用手册
查看>>
WLST
查看>>
【android】简单的布局和控件&简单的练习作品
查看>>
Git学习资料
查看>>
phpstudy 无法启动,提示unable write to xxxxxphpstudy.ini
查看>>
javascript 的继承
查看>>
NServiceBus-安装
查看>>
(转)Loader ,URLLoader ,URLStream的区别
查看>>
[转]前端版本控制工具 gulp或者Grunt插件 基于nodejs
查看>>
Educational Codeforces Round 23 F. MEX Queries 离散化+线段树
查看>>
第04次作业-树
查看>>
2. Postman发送各种格式请求的方法
查看>>
Spring mvc annotation and xml example
查看>>
关于报错The specified child already has a parent的解决办法
查看>>
16 this和构造代码块
查看>>
LIN总线学习-总线逻辑
查看>>
Uva(10305)
查看>>
调整数组顺序使奇数位于偶数前面
查看>>
React Native知识3-TextInput组件
查看>>
MDK 添加芯片支持 以STM32F103ZE为例
查看>>