GCD 常用的几个方法
来源:互联网 发布:新闻联播动画制作软件 编辑:程序博客网 时间:2024/05/31 04:03
GCD 常用的几个方法
1、在主线程中延迟执行某动作,不会卡主主线程
double delayInSeconds = 1.0;dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ //执行事件});
2、延时重复执行
NSTimeInterval period = 0.02; //设置时间间隔dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0); //每秒执行dispatch_source_set_event_handler(_timer, ^{ //在这里执行事件});dispatch_resume(_timer);
3、在子线程中执行某动作,不会卡主整个线程
//开启子线程dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //此处已经是子线程 //do something //回到主线程执行 dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"主线程!!"); });});
4、单程锁,单例
+ (id)sharedInstance { static XXClass *sharedInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ if (!sharedInstance) { sharedInstance = [[self alloc] init]; } }); return sharedInstance;}
阅读全文
0 0
- GCD 常用的几个方法
- GCD的常用方法
- GCD的常用方法
- GCD的常用方法总结
- 几个常用的方法
- 多线程的常用方法及GCD
- Swift 3.0中GCD的常用方法
- iOS开发 GCD一些常用的方法
- GCD的其他(不常用)方法
- 几个java常用的方法
- inventDimParm 常用的几个方法
- JFrame常用的几个方法
- js几个常用的方法
- map的几个常用方法
- sqlite的几个常用方法
- UITableView 常用的几个方法
- 字符串常用的几个方法
- jQuery的几个常用方法
- Windows系统下查看端口被那个进程占用门
- jq-按钮选中样式
- 如何在Android studio中,给android 项目添加外部lib引用。
- android ViewPager不可滑动
- oracle帮助文档——Globalization Support Guide
- GCD 常用的几个方法
- MySQL存储引擎之Spider内核深度解析
- java 获取某个包下的所有类名
- Ubuntu下修改键盘排列
- javascript学习(八)— 变量、作用域、常量
- oracle帮助文档——DBA's Guide
- RNN生成音乐
- PHP学习路线图---千锋PHP出品
- Cocoapods 创建私有库