【读书笔记】iOS-GCD-系统提供的dispatch方法
2023-09-11 14:15:01 时间
系统提供的dispatch方法例如以下:
//系统提供的dispatch方法
//后台运行:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
// something
});
//主线程运行:
dispatch_async(dispatch_get_main_queue(), ^{
// something
});
//一次性运行:
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//something
});
// 延迟2秒运行:
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
// 延迟2s在主线程中运行
});
//自己定义queue
dispatch_queue_t urls_queue = dispatch_queue_create("blog.devtang.com", NULL);
dispatch_async(urls_queue, ^{
//something
});
//让后台2个线程并行运行,然后等2个线程都结束后,再汇总运行结果
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{
// 并行运行的线程一
});
dispatch_group_async(group, dispatch_get_global_queue(0,0), ^{
// 并行运行的线程二
});
dispatch_group_notify(group, dispatch_get_global_queue(0,0), ^{
// 汇总结果
});
參考资料:
http://www.devtang.com/blog/2012/02/22/use-gcd/
http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html
相关文章
- 【Unity3D】iOS 推送实现
- Replace-iOS
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- IOS应用架构思考一(网络层)
- iOS设计模式 - 单例
- iOS设计模式 - 抽象工厂
- Ios开发之 -- js和ios的交互
- IOS仿微信朋友圈好友展示
- iOS设计模式之工厂方法模式
- iOS高版本备份恢复到低版本系统的方法
- ios开发,app调用资源文件到C++的方法
- IOS中 浅谈iOS中MVVM的架构设计与团队协作
- IOS UIAlertView(警告框)方法总结
- IOS开发遇到的屏幕上下闪出黑边的解决方法
- iOS开发那些事-Git在Xcode中的配置与使用常见问题总结
- iOS开发那些事--iOS视图生命周期与视图控制器关系
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- 44、自定义仿IOS对话框
- iOS swift 协议的可选方法
- iOS 算法题
- iOS swift applicationWillTerminate代理方法
- iOS:runtime 消息转发 Method_Swizzling 动态添加方法 动态方法解析
- iOS swift Error Handling(throw trows)
- iOS KVC-KVO-Runtime
- ios音视频开发路线及技术点
- Ios开发之 -- js和ios的交互
- iOS开发 - NSScanner的使用方法
- 误删除思科路由器IOS的恢复方法——xmodem方式