iOS中处理多线程的方式.-创新互联

  1. NSObject提供的处理多线程的方法.

    创新互联是一家专注于网站建设、成都网站建设与策划设计,平桥网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:平桥等地区。平桥做网站价格咨询:13518219792
  2. NSThread: 创建一个NSThread对象就是创建了一个线程

  缺点: 需要手动管理线程的基本信息, 比如线程的开启, 线程的安全等.

    优点: 可以快速创建一个线程并且对线程有控制权, 很轻量级.

 3. NSOpeationQueue: 创建一个队列, 把线程加入到队列中, 在main方法中实现功能.

 4. GCD(Grand Central Dispatch 大调度中心): 获得一个队列, 把任务添加到队列中, 让队列管理执行的任务.

 特点: 效率高, 使用简单.

 有两种创建方式:

  (1)创建一个队列

dispatch_queue_t myqueue = dispatch_queue_create("queue", DISPATCH_QUEUE_CONCURRENT);

  dispatch_async(myqueue, ^{

    NSInteger a = 0;

    for (NSInteger i = 0; i < 1000000000; i++) {

      a++;

    }

  });

 (2)获得系统的队列(5个, 一个串行队列(主队列中包括主线程), 四个并行队列也成全局队列)

dispatch_queue_t mainQueue = dispatch_get_main_queue();

  // 获取全局队列

  dispatch_queue_t global = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

  // 异步的任务分发

  dispatch_async(mainQueue, ^{

    NSLog(@"主队列执行!");

  });

  dispatch_async(global, ^{

    NSInteger a = 0;

    for (NSInteger i = 0; i < 1000000000; i++) {

      a++;

    }

  });

  // 代码只执行一次

  static dispatch_once_t onceToken;

  dispatch_once(&onceToken, ^{

    NSLog(@"代码只执行一次");

  });

  // 让代码延迟执行

  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    NSLog(@"延迟几秒执行");

  });

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:iOS中处理多线程的方式.-创新互联
当前链接:http://ybzwz.com/article/dhjced.html