美文网首页
IOS 线程的一些理解与使用

IOS 线程的一些理解与使用

作者: liudhkk | 来源:发表于2016-09-03 16:27 被阅读18次

好处
1)使用线程可以把程序中占据时间长的任务放到后台去处理,如图片、视频下载
2)发挥多核处理器的优势,并发执行让系统运行的更快、更流畅,用户体验更好
缺点
1)大量的程序降低代码的可读性
2)更多的线程需要更多的空间
3)当多个线程对同一个资源出现争夺的时候需要注意线程安全问题
线程使用:
1)NSThread(两种创建方式)

[NSThread detachNewThreadSelector:@selector(threadBegin:) toTarget:self withObject:@1];

NSThread *thread1 = [[NSThread alloc] initWithTarget:self selector:@selector(threadBegin:) object:@1];

[thread1 start];

2)NSOperationQueue

    __weak typeof(self) weakSelf = self;

    [[NSOperationQueue new] addOperationWithBlock:^{

        [weakSelf threadBegin:@1];

    }];

    

    NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{

        [weakSelf threadBegin:@2];

    }];

    [op addExecutionBlock:^{

        [weakSelf threadBegin:@3];

    }];

    [op addExecutionBlock:^{

        [NSThread sleepForTimeInterval:1];

        [weakSelf threadBegin:@4];

    }];

    [op addExecutionBlock:^{

        [weakSelf threadBegin:@6];

    }];

    [op start];

3)GCD

 dispatch_async(dispatch_get_global_queue(0, 0), ^{ //异步

 [weakSelf threadBegin:@1];

 });

 

 dispatch_group_t group = dispatch_group_create(); // 异步组合

 dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

 dispatch_group_async(group, queue, ^{

 [weakSelf threadBegin:@2];

 });

 dispatch_group_async(group, queue, ^{

 [weakSelf threadBegin:@3];

 });

 dispatch_group_notify(group, queue, ^{

 [weakSelf threadBegin:@4];

 });

 

 // 异步延时

 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{

 [weakSelf threadBegin:@5];

 });

相关文章

  • IOS 线程的一些理解与使用

    好处1)使用线程可以把程序中占据时间长的任务放到后台去处理,如图片、视频下载2)发挥多核处理器的优势,并发执行让系...

  • iOS 通知多线程的使用

    iOS 通知多线程的使用 iOS 通知多线程的使用

  • Block是如何实现?

    前言 文章是阅读《Objective-C高级编程:iOS与OS X多线程和内存管理》之后的一些理解总结。 理解Bl...

  • 多线程系列

    --------------------多线程-------------------- 你理解的多线程? iOS中...

  • 轻松学iOS多线程之 NSOperation 概述

    前面我们已经对 iOS 多线程中的 NSThread 和 GCD 作了初步了解与使用,在 iOS 中,使用 NSO...

  • iOS多线程使用总结

    iOS多线程使用总结 一.概述与实现方案 1. 线程与进程 多线程在iOS中有着举足轻重的地位,是每一位开发者都必...

  • iOS知识合集

    一、多线程开发的理解以及iOS中有几种实现多线程的方法? 好处: 1、使用线程可以把程序中占据时间长的任务放到后台...

  • 整理一下知识点

    iOS多线程的使用 iOS核心优化

  • 理解GCD

    (1)博客:深入理解GCD 理解iOS中的线程池 多线程理解 ?:(1)信号量--...

  • iOS复习之多线程

    关于iOS多线程,你看我就够了iOS多线程--彻底学会多线程使用dispatch_group来进行线程同步 iOS...

网友评论

      本文标题:IOS 线程的一些理解与使用

      本文链接:https://www.haomeiwen.com/subject/lqokettx.html