二十五,iOS GCD的使用
2017-03-02 11:09
309 查看
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中对多线程处理的方法之一(其他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多线程编程之Grand Central Dispatch(GCD)介绍和使用
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- ios 如何使用gcd,block
- IOS使用GCD(多核编程)
- IOS开发(60)之使用GCD执行UI操作
- iphone ios 如何使用gcd
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iphone ios 如何使用gcd
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iOS 并行编程之 GCD使用
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iOS 如何使用GCD
- ios 使用gcd 显示倒计时
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iphone ios 如何使用gcd,block
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iphone ios 如何使用gcd