GCD是苹果公司卡开发的一个多核编程的解决方案,gcd和其它的多线程技术方案相比,使用起来更加简单和方便。
//后台执行的代码dispatch_async(dispatch_get_global_queue(0, 0), ^{
});
dispatch_get_global_queue会开启一个全局队列,我们姑且理解为,系统为我们开启的全局线程。
//主线程执行
dispatch_async(dispatch_get_main_queue(), ^{
//主线程执行
});
//一次性执行
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//在这里只能执行一次;
});
//延迟两秒执行
double delayInSeconds=2.0;
dispatch_time_t popTime=dispatch_time(DISPATCH_TIME_NOW, delayInSeconds*NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^{
});
//GCD也有一些高级的用法
dispatch_queue_t urls_queue=dispatch_queue_create("myDispatch", NULL);
dispatch_async(urls_queue, ^{
});