GCD小结
来源:互联网 发布:淘宝收藏店铺能分类么 编辑:程序博客网 时间:2024/05/03 07:25
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
(void)viewDidLoad {
[super viewDidLoad];//全局队列
dispatch_queue_t q = dispatch_get_global_queue(0, 0);//并发队列
dispatch_queue_t q1 = dispatch_queue_create(“denglu”, DISPATCH_QUEUE_CONCURRENT);//全局队列异步执行
dispatch_async(q, ^{});
//并发队列异步执行
dispatch_async(q1, ^{});
//全局队列同步执行
dispatch_sync(q1, ^{});
//并发队列同步执行
dispatch_sync(q1, ^{});
/*
延迟执行
1.time
2。在那个线程执行
3.回调
*/
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1*NSEC_PER_SEC));dispatch_after(time, dispatch_get_main_queue(), ^{
});
/*
- 只执行一次 应用场景 单利设计
- 如果有多线程访问也能保证线程安全 能过保证线程安全
GCD执行比互斥锁执行效率高
*/
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{NSLog(@”只执行一次”);
});
/*
- 调度组
*/
//队列
dispatch_queue_t qq = dispatch_get_global_queue(0, 0);//调度组
dispatch_group_t g = dispatch_group_create();//添加任务,让队列调度,任务执行情况,最后通知群组
dispatch_group_async(g, qq, ^{NSLog(@"调度组");
});
//所有任务执行完毕之后的通知 回到主线程
dispatch_group_notify(g, dispatch_get_main_queue(), ^{NSLog(@"调度组结束");
});
//1.主队列 获取
dispatch_queue_t mq = dispatch_get_main_queue();//2.异步任务 主队列
dispatch_async(mq, ^{});
//同步任务 主队列 死循环
//同步任务死锁: 当前是在主线程,让主队列执行同步任务 会死锁
dispatch_sync(mq, ^{});
}
@end
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD 小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- GCD小结
- [iOS]GCD小结
- IOS GCD 编程小结
- 微信小程序开发结合现有SpringMvc-入门准备1
- abstract class和interface的区别
- mysql运行状态管理,查看连接数状态,定位和杀掉有问题的连接线程
- activiti工作流的web流程设计器整合视频教程 SSM和独立部署
- CentOS6.5 升级 Python 2.7 版
- GCD小结
- Android native应用开发简明教程 (2)
- PHP登录注册
- 使用Eclipse的Working Set管理项目
- 意甲官网在中国地区被假网劫持,竟声称赞助?
- redis sentinel部署(Windows下实现)
- 软件测试之PICT的使用(1)
- 基于matlab的心电信号预处理
- android broadcastreceiver 里的handler Handler.removeMessages(1);方法无法删除消息