二十五,iOS GCD的使用
来源:互联网 发布:网络教育学籍查询 编辑:程序博客网 时间:2024/05/24 02:38
GCD全称 Grand Central Dispatch ;
是iOS中对多线程处理的方法之一(其他NSThread,NSOperationQueue,NSInvocationOperation)
iOS系统对GCD的的使用方法大概有以下五种;
1.主线程执行
dispatch_async(dispatch_get_main_queue(), ^{
});
2.后台执行
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
});
3.延迟执行
double deleInseconds = 4.0;
/*
延迟更新 要用秒 乘以 NSEC_PER_SEC 宏定义如下
#define NSEC_PER_SEC 1000000000ull
#define NSEC_PER_MSEC 1000000ull
#define USEC_PER_SEC 1000000ull
#define NSEC_PER_USEC 1000ull
*/
dispatch_time_t poptime = dispatch_time(DISPATCH_TIME_NOW, deleInseconds * NSEC_PER_SEC);
dispatch_after(poptime, dispatch_get_main_queue(), ^{
});
4.只执行一次
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
});
5. 并行执行,并汇总
dispatch_group_t group = dispatch_group_create();
//并行执行线程一
dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
NSLog(@"1000====%@",[NSDate date]);
sleep(100);
string = @"10";
});
//并行执行线程二
dispatch_group_async(group, dispatch_get_global_queue(0, 0), ^{
number = @"5";
NSLog(@"5=======%@",[NSDate date]);
});
//汇总结果
dispatch_group_notify(group, dispatch_get_global_queue(0, 0), ^{
NSLog(@"------------- %f",string.floatValue + number.floatValue);
});
具体代码参考github地址 :
https://github.com/wang6177ming123/GCDBlock
- 二十五,iOS GCD的使用
- IOS GCD 使用 (二)
- iOS GCD的使用
- iOS GCD的使用
- iOS GCD的使用
- ios GCD的使用
- iOS开发之浅谈GCD的使用(二)
- iOS实录:GCD使用小结(二)
- iOS GCD 多线程的使用
- iOS 多线程GCD的使用
- iOS GCD的基本使用
- IOS GCD的使用详解
- IOS GCD线程的使用
- iOS中GCD的使用
- iOS开发:GCD的使用
- iOS------GCD的使用小结
- iOS GCD定时器的使用
- iOS 开始GCD的研究(二)
- 十字链表
- glibc版本问题
- jQuery基础——动画篇
- 在Linux中Kill -2 和 Kill -9 的区别
- JAVA之二维数组
- 二十五,iOS GCD的使用
- 捕获fatal error形成报警机制
- 正则表达式处理字符串中的img,去除style属性,添加自适应图片的类
- Notepad20170302
- LeetCode 190. Reverse Bits 题解
- CCF认证考试201612-3 权限查询题解
- iOS 保持界面流畅的技巧
- Vue过渡(动画)- transition组件
- [leetcode] 520. Detect Capital