GCD简单使用
来源:互联网 发布:成都网络理政平台 编辑:程序博客网 时间:2024/06/05 10:38
GCD是苹果封装的c语言级别的多线程机制
1. 在主线程上异步执行一段代码
dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"%@",[NSThread currentThread]); });
2. 在主线程上同步执行一段代码
dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"%@",[NSThread currentThread]); });
3.获取主线程缺省的队列
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"%@",[NSThread currentThread]); }); dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) //此缺省队列在运行的时候由系统来分配管理,如果主线程忙,则系统会自动创建一个新的线程队列。否则就是一个其他的线程队列</span>
4.创建其他线程队列
dispatch_queue_t queue = dispatch_queue_create("other.queue", NULL); //同步其他线程队列 dispatch_queue_t queue = dispatch_queue_create("other.queue", DISPATCH_QUEUE_SERIAL); //同步其他线程队列 dispatch_queue_t queue = dispatch_queue_create("other.queue", DISPATCH_QUEUE_CONCURRENT); // 异步其他线程队列</span> dispatch_async(queue, ^{ NSLog(@"%@",[NSThread currentThread]); });
5.异步执行一段代码,执行完成后通知主线程
dispatch_queue_t queue = dispatch_queue_create("other.queue", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue, ^{ // 执行其他处理 NSLog(@"执行其他处理--%@",[NSThread currentThread]); [NSThread sleepForTimeInterval:2.0]; dispatch_async(dispatch_get_main_queue(), ^{ // 执行完毕 NSLog(@"执行完毕--%@",[NSThread currentThread]); }); });
6. 延时执行
-(void)afterDelay:(NSTimeInterval )timerInterval block:(void (^)())block{ dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timerInterval*NSEC_PER_SEC)); dispatch_after(time, dispatch_get_main_queue(), ^{ block(); });}
0 0
- GCD的简单使用
- GCD简单使用
- GCD简单使用一
- GCD-的简单使用
- GCD简单使用
- GCD使用简单小结
- iOS GCD简单使用
- GCD 简单使用(一)
- GCD 简单使用(二)
- GCD的一些简单使用
- swift中的GCD简单使用
- iOS 多线程之GCD的简单使用
- 关于GCD/NSThread/NSOperationQueue的简单使用
- dispatch_async的简单使用要点(GCD)
- iOS之GCD简单了解使用
- 创建线程介绍及 GCD 简单使用
- 关于iOS GCD的简单使用
- 多线程,信号量的简单使用 GCD
- SIGPIPE信号引起程序退出
- 写入SDCard
- 使用matlab中的VideoReader函数读取,保存,显示,播放视频
- IDEA快捷键整理
- [转]Mysql支持的数据类型(总结)
- GCD简单使用
- SuperMap iClient如何使用WFS服务
- STL中map,multimap,hashmap的区别。
- OpenGL中视口变换的矩阵求解
- 韦东山第三期视频电子书项目轮询输入实验的相关说明
- AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
- iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
- CSDN网站系统升级公告
- 596 C. Wilbur and Points