zoukankan      html  css  js  c++  java
  • iOS开发进阶(iOS开发实战:GCD)summary

    多线程:我们一般把耗时操作放到子线程来执行,然后主线程只做UI操作

    GCD是苹果开发的一个多核编程的解决办法,和(NSThread、NSOperationQueue、NSInvocationOperation)多线程技术方案相比,使用起来更加简单和方便

    //网络显示图片

      self.indicator.hidden = NO;
      [self.indicator startAnimating];
      //进入异步线程
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
          //异步下载图片
          NSURL * url = [NSURL URLWithString:@"http://anImageUrl"];
          NSData * data = [NSData dataWithContentsOfURL:url];
          //网络请求之后进入主线程
          dispatch_async(dispatch_get_main_queue(), ^{
              //关闭loading
              [self.indicator stopAnimating];
              self.indicator.hidden = YES;
              if (data) {//显示图片
                  self.imageView.image = [UIImage imageWithData:data];
              }
          });
      });
     
    // 延迟执行:
        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){
            // code to be executed on the main queue after delay
        });
     
     

    利用GCD并行多个线程并且等待所有线程结束之后再执行其它任务

    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), ^{
           // 汇总结果
       });
  • 相关阅读:
    source is null for getProperty(null, "cpmodel")异常结局
    insert时报Cannot add or update a child row: a foreign key constraint fails (`yanchangzichan`.`productstatusrecord`, CONSTRAINT `p_cu` FOREIGN KEY (`cid`) REFERENCES `customer` (`cid`))错误
    Python流程控制
    Python运算符
    Python字符串格式化输出
    Python数据强制类型转换
    Python数据类型
    Python input函数使用
    Python print函数使用
    Python变量
  • 原文地址:https://www.cnblogs.com/happyEveryData/p/5574091.html
Copyright © 2011-2022 走看看